Photon Unity Networking(PUN)的设置非常简单。把PUN导入到一个新的项目中,PUN向导(PUN Wizard)就会弹出来。也可以从菜单中访问,路径是Window-Photon Unity Networking。

PUN Wizard界面
PUN Wizard 界面

通过免费注册一个新的Photon账户,或从您的仪表板上复制和粘贴现有的AppId,则可完成设置。

如果你想使用自托管的服务器(PhotonServer),请在这里点击 “跳过|Skip”并编辑PhotonServerSettings,如下面所描述。

您只需要在代码中调用PhotonNetwork.ConnectUsingSettings()来进行连接。

PhotonServerSettings文件

设置向导在你的项目中添加了一个PhotonServerSettings文件来存储配置,该文件主要由ConnectUsingSettings使用。你可以设置其连接到光子云PhotonCloud或自我托管的服务器Photon Server,并改变其他常用的设置。

在inspector中显示的PhotonServerSettings
在inspector中显示的PhotonServerSettings

你可以设置AppId、光子云区域|Photon Cloud Region、游戏版本等。在大多数情况下,可以保留默认设置。

设定值说明

AppId Realtime, Chat and Voice

AppId被光子云|Photon Cloud用来识别每个项目。PUN使用一个光子Realtime的AppId进行连接。它还能与Photon Chat和Voice很好地配合,不过如果你使用相应功能,其需要各自的AppId。

App Version

在PUN中,App Version|应用程序版本是Game Version|游戏版本的一部分。具有不同游戏版本值的客户端,是相互分离的。PUN将其自己的PunVersion字符串添加到这个值中,以减少不同PUN版本之间潜在的不兼容情况。

Use Name Server

当连接到Photon Server v4服务器时,客户端会直接连接到主服务器,而不是Name Server|名称服务器。只有当你自己托管光子服务器PhotonServer时,才可以不勾选此项。更多细节请看下面Photon Server V4段落。

Dev Region
“Dev Region” 部分在PhotonServerSettings中

从PUN v2.17开始,当使用PhotonNetwork.ConnectUsingSettings()进行连接时,Dev Region只在Unity Editor和Development Build中使用。你可以简单的通过删除该值,从而在Unity Editor和Development Build中禁用Dev Region。在这里阅读更多信息。

Fixed Region

当连接到光子云时,PUN将默认选择最佳区域。如果你想连接到一个特定的地区,在这里输入一个地区代码,此情况下最佳地区选择将被关闭。

Server

这个选项用于托管你自己的光子服务器PhotonServer时适用。请查看5分钟启动光子服务器或者下载Photon Server SDK。

确保这里填写客户端可以访问的地址。它可以是一个公共的、静态的IP、主机名或网络中的任何地址。

如果您为iOS开发游戏,可以考虑阅读PUN和IPv6以及如何为IPv6设置Photon服务器

当所有设置正确后,你可以在你的代码中调用PhotonNetwork.ConnectUsingSettings()

Port and Protocol

Photon是为在一个Session|会话中使用多个服务器而设计的。这里输入的端口是第一个要连接的服务器的端口。这可能是一个主服务器或名称服务器。该端口也取决于所选择的协议。

如果你连接到光子云Photon Cloud,请将此值设为0。否则,请查询Photon使用的标准端口。

协议的默认值是(可靠的)UDP,但Photon同样也支持TCP和WebSockets。PUN客户端会在WebGL输出中自动使用安全WebSockets。

一般情况下建议使用UDP。

Enable Lobby Statistics

要从服务器上获得大厅统计信息,应该勾选这个选项。更多信息见应用程序和大厅统计页面。

Network Logging

这可以控制低级别的Photon代码的log记录。除非有必要,否则一般情况下应使用Error设置。

Enable Support Logger

当你需要追踪在连接、匹配或房间中发生的事件时,这是一个有用的设置。勾选后,我们的脚本将注册回调并记录重要信息,以帮助调试你的游戏。

Run in Background

这设置了同名的Unity设置。更多信息在这里

RPC List

Remote Procedure Calls“使你能够在一个房间里的其他客户端上调用一个方法。PUN在PhotonServerSettings中保留了这些方法的列表,在调用RPC时使用每个名称的缩写作为索引。

请查看远程调用PRC

自我托管的光子服务器配置

我们建议使用PhotonNetwork.ConnectUsingSettings方法进行连接,并在连接前对PhotonServerSettings进行相应的调整,可以在编译时在Unity编辑器中进行,也可以在运行时通过代码进行(改变PhotonNetwork.PhotonServerSettings.AppSettings)。我们推荐使用Photon Server v5

Photon Server V5

清除或设置NameServer.json中配置的固定区域。将 “Server”设置为您的光子服务器的IP或主机名,其必须是在你的客户端可以访问的网络中。使用”localhost”或127.0.0.1来访问本机也是可以的。使用5058为默认的UDP端口(如果你在PhotonServer.config中改变了NameServer应用程序的自定义端口,则此处也应改变为该端口)。请参阅这里的每个协议和服务器的默认端口列表

光子服务器V5 设置范例

在使用光子服务器(OnPremises)时,您需要知道其与光子云有一些细微的使用区别。这里列出了这些区别。

Photon Server V4

请取消对 “Use Name Server“的勾选,因为Photon Server v4 SDKs不包括这项服务。清除固定区域。将 “Server “设置为您的光子服务器的IP或主机名。同样,其必须是在你的客户端可以访问的网络中。使用 “localhost “或127.0.0.1来访问本机是可以的,如果您使用在同一台机器上的独立构建。输入端口5055为默认的UDP协议(如果你在PhotonServer.config中改变了MasterServer应用程序的自定义端口,则为该端口)。请参阅这里的每个协议和服务器的默认端口列表

光子服务器V4 设置范例

当使用光子服务器(OnPremises)时,需要做一些调整:

  • 如果你连接到Photon Server v4,请在在连接之前将序列化协议设置为1.6版本(因为1.8版本与该服务器版本不兼容)。
PhotonNetwork.NetworkingClient.SerializationProtocol = SerializationProtocol.GpBinaryV16;
  • 客户端需要设置一个唯一的UserId,即使你不对用户进行认证。例如,为每个设备生成并保存一个GUID。
  • GameVersion / AppVersion不用于创建单独的虚拟AppId。

要获得Photon Server v4和Photon Cloud之间的完整差异列表以及Photon Server v4的已知问题,请访问此页面

error: 转摘请联络我们~