下面是演示环节 本节我们开始《慕课英雄
2》网络版的制作 首先,打开 Unity
编辑器 点击窗口右上角的 New
按钮 打开新建项目窗口,首先我们要输入项目的名称
这里我们将项目命名为 Mooc Hero
2 然后选择项目的保存路径 大家可以根据自己的实际情况自行选择保存路径
接着,设置项目的类型为 3D 游戏项目 并点击 Creat Project
按钮创建项目 [空白_音频]
Unity 编辑器会自动打开我们新建的项目
接下来,我们导入本项目所需的资源包 在 Project
视图中点击鼠标右键 在弹出的快捷菜单中依次选择
Import Package ——
Custom Pakage,在打开的 路径选择窗口中找到我们提供的资源包
Mooc Hero 2 Lobby.unitypackage
选择它,并点击打开按钮 然后在弹出的小窗口中点击
Import 按钮 [空白_音频]
现在我们已经完成了 Mooc Hero 2 资源包的导入
此外,我们还需要导入 PUN 资源包 我们用同样的方式导入 PUN
资源包 [空白_音频]
[空白_音频] 导入完成后,会弹出
PUN Wizard 窗口 我们先点击 skip 跳过设置
下面我们开始配置 PUN 的网络连接设置
这里我们演示 Self Hosted 的网络连接设置 我们找到
Photon-OnPremise-Server_SDK 文件夹 进入 deploy 目录。
根据电脑的位数选择对应的 bin 文件夹 双击运行
PhotonControl 应用程序 [音乐]
此时,桌面右下角会出现 PhotonControl 图标
右键单击该图标,选择 Game Server IP Config
中的 Set Local IP,设置服务器 IP 地址 接下来再次打开 PhotonControl
的快捷菜单 点击 LoadBalancing(MyCloud) 中的 Start as
application 启动 Photon 服务器,下面我们回到
Unity 编辑器 在 Project 视图中,依次展开
Photon Unity Network Resources
文件夹,选中 PhotonServerSettings
在 Inspector 视图中完成 PUN 连接设置
我们把 Hosting 设置为 Self Hosted 将
Server Address 设置为 Photon Control
中的 IP 地址 [空白_音频]
[空白_音频] 完成 Unity
客户端连接 Photon 服务器的配置 接下来,我们开始
《慕课英雄 2》网络版游戏登录界面的制作 首先,展开
Project 视图中的 Prefebs 文件夹 将其中的 StartCanvas
预制件拖入场景中 StartCanvas
中包含了以下四个 UI 控件 Background
是游戏界面的背景图 [空白_音频]
UserMessage 表示游戏画面右上角的玩家信息
Back Button 表示游戏画面左上角的返回按钮
ConnectionState 表示游戏画面左下角的网络连接状态信息
其次,我们在 HierArchy 层级视图中创建
Event System 用于接收玩家的输入、
点击等交互行为 接下来 我们将
Prefebs 文件夹中的 LoginPanel 拖入 StartCanvas
中,使它成为 StartCanvas 的子对象 我们把它放置在
ConnectionStart 之上 这样 ConnectionState
就会始终显示在游戏画面的最前方 不会被其他 UI 控件遮挡。
添加 Start Canvas 后 游戏画面右下角显示课程的信息
游戏画面正上方显示《慕课英雄 2》,表示游戏的标题
游戏画面正中央显示游戏登录面板
游戏登录面板由以下几个部分组成 首先,UsernameLabel
表示玩家昵称标签 UsernameInputField
表示玩家昵称输入框 LoginButton
表示登录按钮 ExitButton 表示退出按钮
接下来我们添加 UI 控制脚本
展开 Scripts 文件夹 将其中的
LoginPanelController 绑定到
StartCanvas 对象上 同时设置它的相应属性
[空白_音频]
[空白_音频]
[空白_音频] 游戏登录后,需要加载游戏大厅面板
LobbyPanel 这里我们先将 Prefebs
文件夹中的 LobbyPanel 预制件拖入 StartCanvas
中 [空白_音频]
[空白_音频] 接着,我们为
LobbyPanel 绑定 LobbyPanelController 脚本 设置它的部分属性
[空白_音频]
[空白_音频]
[空白_音频]
[空白_音频] 之后,我们将
LobbyPanel 设置到 StartCanvas 的
LoginPanel 脚本组件的属性中。
属性设置完毕后 我们给登录、 退出按钮绑定事件处理函数
首先选中登陆按钮,把 StartCanvas 拖入 Button
组件的 Onclick 上 选择 LoginPanelController
类的 ClickLoginButton 完成事件处理函数的绑定
我们用同样的方法给退出按钮绑定事件处理函数
ClickExitButton。
下面我们预览游戏 首先输入玩家的昵称
点击登录按钮 开始连接
Photon 服务器 游戏画面会从游戏登录界面切换到游戏大厅界面
左上角出现返回按钮,右上角显示玩家信息
在连接过程中,左下角的网络连接状态会不断发生改变 最终停止在
ConnectedToMaster 表示 Unity 客户端已经连接到了 MasterServer
此时,我们可以点击左上角的返回按钮 断开客户端与服务器的连接,游戏画面显示游戏登录界面
下面我们停止预览 双击打开 LoginPanelController
脚本 [空白_音频]
我们讲解游戏登录界面的控制脚本 这里,在
Start 函数中 我们判断与
Photon 服务器的连接状态
如果未连接 Photon 服务器 则调用 SetLoginPanelActive
函数 启用游戏登录界面,关闭其他界面 使用
PlayerPrefs 类 在本地保存玩家的昵称,如果已经连接了
Photon 服务器 那么调用 SetLobbyPanelActive
函数,启用游戏大厅界面 在 Update 函数中,我们会不断更新
Unity 客户端 与 Photon 服务器的连接状态。
我们可以使用条件编译指令 让 Update
函数只在 Unity 编辑器中编译运行 在
ClickLoginButton 函数中 我们使用
SetLobbyActive 函数启用游戏大厅面板
使用 PhotonNetwork .ConnectUsingSettings
函数连接 Photon 服务器 函数的参数 1.0
表示游戏版本标识符 不同游戏版本标识符表示不同的游戏
如果玩家未输入昵称,我们会自动给玩家分配一个昵称
这里我们使用游客加随机游客编号作为玩家的临时昵称 在函数的最后设置玩家在
Photon 服务器的昵称 并把玩家的昵称保存在本地
在 ClickExitButton 函数中 我们使用 Application.Quit
函数退出游戏应用 最后我们返回 Unity 编辑器
保存游戏场景 这里我们将游戏场景命名为
GameLobby 表示游戏大厅
以上就是本节演示的全部内容