包含静态客户端信息和函数的客户端管理器。
此管理器包含对跟踪的静态本地对象(如生成器注册)的引用。它还具有客户端非本人注册时使用的默认消息处理程序。管理器会在客户端连接设置为准备就绪后,添加/删除游戏的玩家对象。
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 | 向主机迁移期间使用的新主机发送重新连接消息。 |
SetLocalObject | NetId 是分配给游戏中带有 NetworkIdentity 组件的所有对象的唯一编号。 |
SetReconnectId | 设置 ClientScene 在主机迁移后重新连接到新主机时将会使用的 ID。 |
UnregisterPrefab | 删除使用 ClientScene.RegisterPrefab 设置的已注册的生成预制件。 |
UnregisterSpawnHandler | 删除使用 ClientScene.RegisterHandler() 注册的生成处理程序函数。 |