欢迎大家继续学习《Unity游戏编程进阶》 本节我们讲解玩家在
游戏大厅创建房间，或者加入已有游戏房间的实现逻辑
本节将采用PPT讲解+项目演示的方式 介绍创建、
加入游戏房间相关的知识要点 在项目演示环节，我们演示了创建、
加入房间在《慕课英雄2》项目中的具体应用 下面大家可以根据自己的专业基础和学习能力，从以下三种方法中选择一种来学习
第一种方法，先看PPT讲解，对相关知识有一个系统的了解 然后观看项目演示视频，学习知识点的运用。
第二种方法 先看项目演示视频，了解知识要点的具体应用，再回到PPT讲解阶段，有针对性的学习-
知识要点 第三种方法，跳过PPT讲解，直接进入项目演示
通过理解项目中知识要点的运用，完成相关知识要点的学习 不需回顾PPT讲解。
下面进入PPT讲解阶段 游戏大厅面板呢
CreateRoomButton和RandomJoinButton，分别用于创建房- 间和随机进入房间
下面
我们讲解创建房间按钮和随机进入房间按钮的点击事件处理函数 在随机进入房间按钮的点击事件处理函数
ClickRandomJoinButton中，我们使用PhotonNetwork.- JoinRandomRoom
静态函数，使玩家随机进入游戏大厅中的一个房间
然后使用SetActive函数，启用roomLoadingLabel 显示Room Loading提示信息
在创建房间按钮的点击事件处理函数 ClickCreateRoomButton中，我们使用SetActive函数
激活创建房间面板
本页PPT给出了创建房间面板的各个UI控点，在Hierachy层级视图中的组织结构
在创建房间面板中，第一行是创建房间标签
第二行是房间名称标签，房间名称输入栏，以及房间名称提示信息
第三行是游戏人数标签，以及选择游戏人数的开关组
游戏人数可以选择两人或者四人，最后一行是确认创建按钮和取消创建按钮
我们在CreateRoomController脚本中
编写创建房间面板的代码片段，我们定义了一系列的公有字段
用于获取UI组件，其中CreateRoomPanel表示创建房间面板
RoomLoadingPanel表示房间加载提示信息 roomName表示玩家输入的房间名称，roomNameHint
表示房间名称的提示信息，maxPlayerToggle表示设置房间人数的开启开关
游戏人数可以选择两人或者四人，我们将可选人数保存在maxPlayerNum数组中
再确认创建按钮的点击事件处理函数
ClickConfirmCreateRoomButton中，我们实现创建房间的逻辑
我们遍历游戏人数开关组，toggle group的开关 获取房间的最大人数，保存在变量roomOption中
我们使用PhotoNetwork.getRoomList静态函数
获取大厅的房间列表，遍历房间列表 判断玩家设置的房间名称是否与已有的房间重复
如果玩家创建的房间 名称与已有的房间名称发生重复，提示信息中显示
房间名称重复，不执行房间的创建逻辑 如果房间名称不重复，玩家在游戏大厅创建一个新的房间
房间的属性为roomOption，房间创建完毕后，玩家会进入该房间
在函数的最后，我们禁用创建房间面板 显示房间加载信息，Room
Loading [空白_录音]
我们在取消创建按钮的点击事件处理函数，ClickCancel CreateRoomButton中，禁用创建房间面板
消除房间名称提示信息
当玩家创建房间，随机进入房间，或者选择房间进入时 游戏大厅面板均显示Room
Loading提示信息 如果网络连接正常，客户端的网络状态会发生变化
状态1是显示ConnectingToGameserver，Authenticati- ng，Joining状态
如果在进入房间时
玩家与服务器的连接断开，则调用LoginPanelController脚本中的
回调函数OnConnectionFail，在该函数中
调用SetLoginPanelActice函数，显示游戏登录面板 左下角网络连接状态显示PeerCreated
当玩家进入游戏房间后，网络连接状态变为Joined
OnJoinedRoom回调函数被调用，我们覆写OnJoinedRoom函数，使用- SetActive函数
禁用游戏大厅面板，启用游戏房间面板，显示房间内部信息
下一节我们讲解游戏房间界面的实现
最后进入演示环节
演示环节的内容为：玩家创建游戏房间，或者加入游戏房间的界面的制作
实现相关逻辑