ClientScene
描述
包含静态客户端信息和功能的客户端管理器。
该管理器包含对跟踪的静态本地对象(如spawner注册)的引用。当它们自己没有注册时,它也具有客户端使用的默认消息处理程序。客户端连接设置为就绪后,管理器处理添加/删除玩家对象到游戏。
ClientScene是一个单例,它有静态的便利方法,例如ClientScene.Ready()。
ClientScene由NetworkManager使用,但它本身可以使用。
由于ClientScene管理客户端上的玩家对象,因此客户端需要添加玩家。当设置了auto-add-players时,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 | 这为该客户添加了一个玩家GameObject。这会导致将 AddPlayer消息发送到服务器,并调用NetworkManager.OnServerAddPlayer。如果额外的消息被传递给了 AddPlayer,那么OnServerAddPlayer将被包含消息内容的NetworkReader调用。 |
| ClearSpawners | 这将清除该客户端的已注册spawn预制和spawn处理函数。 |
| ConnectLocalServer | 创建本地客户端实例并将其连接到本地服务器。 这使客户端成为“主机” - 在同一个进程中的客户端和服务器。 |
| DestroyAllClientObjects | 销毁客户端上的所有联网对象。 |
| FindLocalObject | 这将找到具有指定网络ID的本地NetworkIdentity对象。 |
| Ready | 表示客户端连接已准备好进入游戏。 |
| RegisterPrefab | 注册UNET生成系统的预制件。 |
| RegisterSpawnHandler | 这是一种先进的生成功能,用UNET生成系统注册自定义assetId。 |
| RemovePlayer | 从游戏中移除指定的玩家ID。 |
| SendReconnectMessage | 向主机迁移期间使用的新主机发送重新连接消息。 |
| SetLocalObject | NetId是分配给游戏中具有NetworkIdentity组件的所有对象的唯一编号。 |
| SetReconnectId | 设置主机迁移后重新连接到新主机时ClientScene将使用的Id。 |
| UnregisterPrefab | 删除用ClientScene.RegisterPrefab设置的注册spawn预制。 |
| UnregisterSpawnHandler | 删除已注册的ClientScene.RegisterHandler()注册的spawn处理函数。 |
🔚