1
00:00:00,000 --> 00:00:09,050
欢迎大家继续学习《Unity游戏编程进阶》 本节我们讲解玩家在

2
00:00:09,050 --> 00:00:13,720
游戏大厅创建房间，或者加入已有游戏房间的实现逻辑

3
00:00:13,720 --> 00:00:21,583
本节将采用PPT讲解+项目演示的方式 介绍创建、

4
00:00:21,583 --> 00:00:26,543
加入游戏房间相关的知识要点 在项目演示环节，我们演示了创建、

5
00:00:26,543 --> 00:00:36,050
加入房间在《慕课英雄2》项目中的具体应用
下面大家可以根据自己的专业基础和学习能力，从以下三种方法中选择一种来学习

6
00:00:36,050 --> 00:00:45,286
第一种方法，先看PPT讲解，对相关知识有一个系统的了解
然后观看项目演示视频，学习知识点的运用。

7
00:00:45,286 --> 00:00:52,876
第二种方法
先看项目演示视频，了解知识要点的具体应用，再回到PPT讲解阶段，有针对性的学习-

8
00:00:52,876 --> 00:00:58,030
知识要点 第三种方法，跳过PPT讲解，直接进入项目演示

9
00:00:58,030 --> 00:01:05,274
通过理解项目中知识要点的运用，完成相关知识要点的学习 不需回顾PPT讲解。

10
00:01:05,274 --> 00:01:13,250
下面进入PPT讲解阶段 游戏大厅面板呢

11
00:01:13,250 --> 00:01:19,200
CreateRoomButton和RandomJoinButton，分别用于创建房-
间和随机进入房间

12
00:01:19,200 --> 00:01:24,445
下面

13
00:01:24,445 --> 00:01:33,110
我们讲解创建房间按钮和随机进入房间按钮的点击事件处理函数
在随机进入房间按钮的点击事件处理函数

14
00:01:33,110 --> 00:01:39,300
ClickRandomJoinButton中，我们使用PhotonNetwork.-
JoinRandomRoom

15
00:01:39,300 --> 00:01:44,020
静态函数，使玩家随机进入游戏大厅中的一个房间

16
00:01:44,020 --> 00:01:53,000
然后使用SetActive函数，启用roomLoadingLabel 显示Room
Loading提示信息

17
00:01:53,000 --> 00:02:01,780
在创建房间按钮的点击事件处理函数
ClickCreateRoomButton中，我们使用SetActive函数

18
00:02:01,780 --> 00:02:07,085
激活创建房间面板

19
00:02:07,085 --> 00:02:12,390
本页PPT给出了创建房间面板的各个UI控点，在Hierachy层级视图中的组织结构

20
00:02:12,390 --> 00:02:17,380
在创建房间面板中，第一行是创建房间标签

21
00:02:17,380 --> 00:02:23,810
第二行是房间名称标签，房间名称输入栏，以及房间名称提示信息

22
00:02:23,810 --> 00:02:28,690
第三行是游戏人数标签，以及选择游戏人数的开关组

23
00:02:28,690 --> 00:02:35,240
游戏人数可以选择两人或者四人，最后一行是确认创建按钮和取消创建按钮

24
00:02:35,240 --> 00:02:41,150
我们在CreateRoomController脚本中

25
00:02:41,150 --> 00:02:46,960
编写创建房间面板的代码片段，我们定义了一系列的公有字段

26
00:02:46,960 --> 00:02:52,860
用于获取UI组件，其中CreateRoomPanel表示创建房间面板

27
00:02:52,860 --> 00:03:02,410
RoomLoadingPanel表示房间加载提示信息
roomName表示玩家输入的房间名称，roomNameHint

28
00:03:02,410 --> 00:03:09,020
表示房间名称的提示信息，maxPlayerToggle表示设置房间人数的开启开关

29
00:03:09,020 --> 00:03:16,220
游戏人数可以选择两人或者四人，我们将可选人数保存在maxPlayerNum数组中

30
00:03:16,220 --> 00:03:24,150
再确认创建按钮的点击事件处理函数

31
00:03:24,150 --> 00:03:30,610
ClickConfirmCreateRoomButton中，我们实现创建房间的逻辑

32
00:03:30,610 --> 00:03:40,300
我们遍历游戏人数开关组，toggle group的开关
获取房间的最大人数，保存在变量roomOption中

33
00:03:40,300 --> 00:03:48,260
我们使用PhotoNetwork.getRoomList静态函数

34
00:03:48,260 --> 00:03:56,030
获取大厅的房间列表，遍历房间列表 判断玩家设置的房间名称是否与已有的房间重复

35
00:03:56,030 --> 00:04:05,050
如果玩家创建的房间 名称与已有的房间名称发生重复，提示信息中显示

36
00:04:05,050 --> 00:04:13,430
房间名称重复，不执行房间的创建逻辑
如果房间名称不重复，玩家在游戏大厅创建一个新的房间

37
00:04:13,430 --> 00:04:20,160
房间的属性为roomOption，房间创建完毕后，玩家会进入该房间

38
00:04:20,160 --> 00:04:26,933
在函数的最后，我们禁用创建房间面板 显示房间加载信息，Room

39
00:04:26,933 --> 00:04:32,610
Loading [空白_录音]

40
00:04:32,610 --> 00:04:41,230
我们在取消创建按钮的点击事件处理函数，ClickCancel
CreateRoomButton中，禁用创建房间面板

41
00:04:41,230 --> 00:04:46,965
消除房间名称提示信息

42
00:04:46,965 --> 00:04:55,430
当玩家创建房间，随机进入房间，或者选择房间进入时 游戏大厅面板均显示Room

43
00:04:55,430 --> 00:05:03,300
Loading提示信息 如果网络连接正常，客户端的网络状态会发生变化

44
00:05:03,300 --> 00:05:09,470
状态1是显示ConnectingToGameserver，Authenticati-
ng，Joining状态

45
00:05:09,470 --> 00:05:15,110
如果在进入房间时

46
00:05:15,110 --> 00:05:20,450
玩家与服务器的连接断开，则调用LoginPanelController脚本中的

47
00:05:20,450 --> 00:05:25,310
回调函数OnConnectionFail，在该函数中

48
00:05:25,310 --> 00:05:33,250
调用SetLoginPanelActice函数，显示游戏登录面板
左下角网络连接状态显示PeerCreated

49
00:05:33,250 --> 00:05:40,280
当玩家进入游戏房间后，网络连接状态变为Joined

50
00:05:40,280 --> 00:05:46,740
OnJoinedRoom回调函数被调用，我们覆写OnJoinedRoom函数，使用-
SetActive函数

51
00:05:46,740 --> 00:05:51,990
禁用游戏大厅面板，启用游戏房间面板，显示房间内部信息

52
00:05:51,990 --> 00:05:58,440
下一节我们讲解游戏房间界面的实现

53
00:05:58,440 --> 00:06:03,580
最后进入演示环节

54
00:06:03,580 --> 00:06:09,890
演示环节的内容为：玩家创建游戏房间，或者加入游戏房间的界面的制作

55
00:06:09,890 --> 00:06:14,350
实现相关逻辑
