Version: 2017.2

ClientScene

class in UnityEngine.Networking

切换到手册

描述

包含静态客户端信息和函数的客户端管理器。

此管理器包含对跟踪的静态本地对象(如生成器注册)的引用。它还具有客户端非本人注册时使用的默认消息处理程序。管理器会在客户端连接设置为准备就绪后,添加/删除游戏的玩家对象。

ClientScene 是一个单例,并且有静态的便捷方法,例如 ClientScene.Ready()。

ClientScene 由 NetworkManager 使用,但它也可以自己使用。

因为 ClientScene 在客户端上管理玩家对象,所以它是客户端请求添加玩家的位置。NetworkManager 会在设置自动添加玩家时,通过 ClientScene 自动执行该操作,但它也可使用函数 ClientScene.AddPlayer() 通过代码完成。该操作会向服务器发送 AddPlayer 消息,并会为此客户端创建一个玩家对象。

与 NetworkServer 一样,ClientScene 理解本地客户端的概念。函数 ClientScene.ConnectLocalServer() 用于通过启动本地客户端(当服务器已经在运行时)成为主机。

静态变量

localPlayers添加到游戏中的所有玩家列表。
objects这是已在客户端上生成的联网对象的字典。
prefabs这是一本通过 ClientScene.RegisterPrefab() 在客户端注册的预制件字典。
ready当客户端的连接设为准备就绪时返回 true。
readyConnection当前为“准备就绪”状态的 NetworkConnection 对象。这是到生成对象的服务器的连接。
reconnectId旧主机丢失后,客户端重新连接到游戏的新主机时使用的 reconnectId。
ReconnectIdHost旧主机连接到新主机时使用的常量 ID。
ReconnectIdInvalid无效的重新连接 ID。
spawnableObjects这是场景中禁用的 NetworkIdentity 对象的字典,该对象可由来自服务器的消息生成。

静态函数

AddPlayer此函数可为该客户端添加一个玩家游戏对象。这会导致向服务器发送一个 AddPlayer 消息,且调用 NetworkManager.OnServerAddPlayer。如果一个额外的消息被发送至 AddPlayer,那么将通过包含消息内容的 NetworkReader 调用 OnServerAddPlayer。
ClearSpawners这会清除此客户端注册过的生成预制件和生成处理程序。
ConnectLocalServer创建本地客户端实例,并将其连接到本地服务器。该操作会使此客户端进入一个“主机”- 同一进程中的客户端和服务器。
DestroyAllClientObjects销毁客户端上的所有联网对象。
FindLocalObject这可以通过指定的网络 ID 找到本地 NetworkIdentity 对象。
Ready表明客户端连接已准备好进入游戏。
RegisterPrefab通过 UNET 生成系统注册一个预制件。
RegisterSpawnHandler这是一个高级的生成函数,它可使用 UNET 生成系统注册自定义 assetId。
RemovePlayer从游戏中删除指定的玩家 ID。
SendReconnectMessage向主机迁移期间使用的新主机发送重新连接消息。
SetLocalObjectNetId 是分配给游戏中带有 NetworkIdentity 组件的所有对象的唯一编号。
SetReconnectId设置 ClientScene 在主机迁移后重新连接到新主机时将会使用的 ID。
UnregisterPrefab删除使用 ClientScene.RegisterPrefab 设置的已注册的生成预制件。
UnregisterSpawnHandler删除使用 ClientScene.RegisterHandler() 注册的生成处理程序函数。