下面是演示环节 本节我们在《慕课英雄
2 》网络版中 添加、 创建和加入房间的功能
这里我们已经在 Unity 编辑器中打开了《慕课英雄 2 》的
GameLobby 场景 游戏大厅面板的随机进入房间按钮
用于随机加入大厅中的任意房间 我们为它绑定
LobbyPanelController 脚本的 ClickRandomJoinButton
函数 [空白_录音]
该函数启用游戏房间面板 并调用
PhotonNetwork.JoinRandomRoom 函数随机进入游戏房间
创建房间按钮用于在游戏大厅中创建一个新的房间 我们为它绑定
LobbyPanelController 脚本的 ClickCreateRoomButton
函数 该函数用于激活创建房间面板，CreateRoomPanel 在
Project 视图中，我们把 Prefabs
文件夹 中的 CreateRoomPanel 拖入 LobbyInfo
对象中 将它放置在 LobbyInfo
子对象的最底端 保证创建房间面板显示在游戏大厅面板之上
我们展开创建房间面板 其中
CreateRoomBackground 表示创建房间
面板的背景 CreateRoomLabel
用于显示创建房间四个字 RoomNameLabel 用于显示房间名称
RoomNameInputField 用于输入房间名称
右边的 RoomNameHint 用于显示房间名称的提示信息
如果玩家创建房间时输入的房间名与大厅中的已有房间名重复 那么
RoomNameHint 就会显示房间名称重复这几个字 MaxPlayerLabel 和
MaxPlayerToggleGroup 表示游戏人数，其中游戏人数可以选择两人或者四人
游戏人数我们用单选框 ToggleGroup
组件实现 最后是确认创建和取消创建按钮
分别用于确认游戏房间的创建以及取消游戏房间的创建 接下来
我们为创建房间面板 CreateRoomPanel 绑定控制脚本
我们将 CreateRoomController 脚本绑定到 LobbyPanel 对象上
并设置脚本组件的相关属性 [空白_录音]
[空白_录音] [空白_录音]
下面我们为确认创建房间按钮绑定事件处理函数
事件处理函数的名称为 ClickConfirmCreateRoomButton
我们为取消创建房间按钮绑定事件处理函数 函数的名称为
ClickCancelCreateRoomButton 下面我们设置
LobbyPanel 对象 的 LobbyPanelController
组件中的剩余属性 [空白_录音]
玩家创建或者进入游戏房间后 需要显示游戏房间界面。
这里我们将 Project 视图 Prefabs 文件夹中的
RoomPanel 拖入 StartCanvas 对象中，让它位于
LobbyPanel 下方 关于 Room Panel
我们会在下一节演示视频中进行讲解 接下来我们设置
LobbyPanelController 和 LoginPanelController
脚本中的 RoomPanel 属性 属性设置完成后
我们构建当前项目，点击 file 菜单中的 Build Settings
打开项目构建窗口，点击 Add Open Scenes
将 GameLobby 场景添加到构建场景列表中 最后点击 Build
按钮，构建游戏客户端程序 [声响]
项目构建完毕后 我们启动两个构建完成的游戏客户端程序
在第一个客户端中
我们登录并进入游戏大厅，点击创建房间按钮
在弹出的创建房间面板中 输入房间名
Test，选择房间人数为 4
人 点击确认创建按钮，完成房间的创建
在第二个游戏客户端中 我们登录并进入游戏大厅，此时
游戏大厅面板会显示第一个客户端创建的游戏房间 我们点击创建房间按钮
在面板中输入房间名称 Test
并点击确认创建按钮，此时房间 名称右侧显示提示信息，房间名称重复
我们点击取消创建按钮，返回游戏大厅 点击进入房间按钮，进入之前客户端创建的房间
此时游戏画面会显示房间面板
我们未设置房间面板的控制函数 因此房间面板的显示不完全正确
我们关闭打开的客户端程序 返回
Unity 编辑器 双击打开 CreateRoomController
脚本 [空白_录音]
我们为大家讲解创建房间面板的代码实现 在
CreateRoomController 类中
我们定义了一个私有数组 MaxPlayerNumber 用于保存最大玩家的个数
ClickConformCreateRoomButton 函数用于确认房间的创建
首先我们根据最大玩家个数开关组的打开情况
设置房间最大玩家的个数，将该属性保存在 roomOptions 中
然后使用 PhotonNetwork.
GetRoomList 函数获取游戏大厅内所有的游戏房间
遍历游戏房间，检查新创建的房间名称是否与已有房间名称重复
如果房间名重复，房间名提示信息中会显示
房间名重复信息，不执行创建房间的逻辑 如果房间名称未重复
我们调用 PhotonNetwork.CreateRoom 函数
创建新游戏房间，使用 SetActive
函数 禁用创建房间面板，启用房间加载提示信息
ClickCancelCreateRoomButton 函数 用于取消房间的创建。
在该函数中，我们使用 SetActive
函数 禁用创建房间面板，并显示游戏大厅面板
最后我们返回 Unity
编辑器 保存游戏场景
以上 就是本节演示的全部内容