原标题:【程序】必看干货:Photon多人游戏开发教程
PUN介绍
入门
Photon Unity Networking(首字母缩写PUN)是一个Unity多人游戏插件包。它提供了身份验证选项、匹配,以及快速、可靠的通过我们的Photon后端实现的游戏内通信。
PUN输出几乎所有Unity支持的平台,且有两种选项:
注意:对于Unity 5,两个PUN插件包都含相同的文件。你可以买PUN+ 来获得60个月的100 CCU,但客户端上仍使用PUN Free。
PUN、PUN+和UNet的对比
详见文章Photon Unity Networking (PUN) Compared To Unity Networking (UN)来查看两者比较的细节。
一些必须的代码
要充分使用PUN,你将需要写一些脚本。本页向你展示入门的最重要部分。
你也应该花一些时间来通过Marco Polo Tutorial。
连接
上面的代码是你需要连接并开始使用Photon功能的所有代码。
ConnectUsingSettings 设置你的客户端的游戏版本并使用一个由PUN设置向导写入的配置文件,该配置文件保存在PhotonServerSettings里面。
匹配
接下来,你想加入现有的房间或创建自己的。下面的代码显示了启动或加入游戏的可能方法调用。
好朋友常常想要一起玩游戏。如果他们可以交流(例如 使用Photon Chat, Facebook), 他们可以瞎编一个房间名并使用JoinOrCreateRoom方法。因为他们知道房间的名字,他们可以创建为他人不可见,像这样:
C#代码示例:
使用 JoinOrCreateRoom方法,如果房间不存在就会创建该房间。如果房间满了, OnPhotonJoinRoomFailed会被调用 (如果你在某个地方实现了这个回调函数)。
游戏
GameObjects可以被实例化为"networked GameObjects"。它们会有一个可以被识别的PhotonView组件和一个所有者(或控制者)。所有者会更新其他人。持续更新可以通过拖拽一个脚本到一个PhotonView的 Observed字段被发送。需要更新的脚本必须实现OnPhotonSerializeView像这样:
客户端可以为不见用的操作执行Remote Procedure Calls:
独立于GameObjects, 你也可以发送你自己的事件:
初始设置
Photon Unity Networking (PUN)真的很容易设置。把PUN导入到一个新的项目中,然后PUN设置向导就会弹出来,如图0-1所示。通过输入一个邮箱地址来注册一个新的(免费) Photon Cloud帐号,或者复制粘贴一个已有的AppId到该字段里。打完收工。
如果你想要自己托管一个Photon服务器,点击"skip",然后像如下描述的那样编辑 PhotonServerSettings。
图 0-1 PUN设置向导
要连接,你只