NetworkServer
NetworkServer
是一个管理来自多个客户端的连接的高级API类。
NetworkServer
使用NetworkServerSimple
实现基本的网络功能,并添加更多类似游戏的功能。
NetworkServer
通过NetworkServerSimple
实例处理来自远程客户端的远程连接,并且还具有本地客户端的本地连接。
NetworkServer
是一个单例。它具有静态便利功能,如NetworkServer.SendToAll()
和NetworkServer.Spawn()
,它们自动使用单例实例。
NetworkManager
使用NetworkServer
,但可以在没有NetworkManager
的情况下使用。
网络服务器管理已生成的一组网络对象。对象由NetworkServer.Spawn()
生成,它将它们添加到此集合中,并使它们在客户端上创建。生成的对象在被销毁时会自动删除,或者通过调用NetworkServer.UnSpawn()
从生成的集合中删除它们 - 这不会销毁该对象。
NetworkServer
使用了许多内部消息,当NetworkServer.Listen()
被调用时会设置这些消息。
静态属性
属性 | 功能 |
---|---|
active | 检查服务器是否已启动。 |
connections | 来自客户端的所有当前连接的列表。 |
dontListen | 如果启用此功能,则服务器将不侦听常规网络端口上的传入连接。 |
handlers | 向服务器注册的消息处理程序字典。 |
hostTopology | 服务器正在使用的主机拓扑。 |
listenPort | 服务器正在侦听的端口。 |
localClientActive | 如果本地客户端当前处于活动状态,则为真。 |
localConnections | 服务器上的本地连接列表。 |
maxDelay | 在连接上发送数据包之前的最大延迟。 |
networkConnectionClass | 创建新网络连接时使用的类。 |
numChannels | 网络配置的通道数量。 |
objects | 这是一个已经在服务器上产生的网络对象的字典。 |
serverHostId | 此服务器使用的传输层hostId 。 |
useWebSockets | 这使服务器侦听WebSockets 连接而不是普通的传输层连接。 |
静态方法
方法 | 说明 |
---|---|
AddExternalConnection | 它接受来自另一个外部源的网络连接并将其添加到服务器。 |
AddPlayerForConnection | 当AddPlayer 消息处理程序收到来自玩家的请求时,服务器会调用此方法将玩家对象与连接相关联。 |
BecomeHost | 这允许已经从服务器断开连接的客户端成为新版游戏的主机。 |
ClearHandlers | 清除所有注册的回调处理程序。 |
ClearLocalObjects | 这将清除服务器知道的所有网络对象。如果场景更改以正常方式删除所有对象而不以正常方式销毁它们,则可能需要这样做。 |
ClearSpawners | 清除该服务器的所有已注册的spawn 预制和生成处理函数。 |
Configure | 这为服务器配置传输层设置。 |
Destroy | 销毁此对象和所有客户端上的相应对象。 |
DestroyPlayersForConnection | 这将销毁与服务器上的NetworkConnections 关联的所有玩家对象。 |
DisconnectAll | 断开所有当前连接的客户端。 |
FindLocalObject | 这将找到具有指定网络ID的本地NetworkIdentity 对象。 |
GetConnectionStats | 获取所有连接的聚合数据包统计信息。 |
GetStatsIn | 获取服务器的入站网络统计信息。 |
GetStatsOut | 获取客户端的出站网络统计信息。 |
Listen | 在给定的端口号上启动服务器。请注意,如果已创建匹配项,则将使用中继服务器而不是本地套接字来侦听。 |
ListenRelay | 使用中继服务器启动服务器。这是使用中继服务器的手动方式,因为如果存在匹配项,常规NetworkServer.Connect() 将自动使用中继服务器。 |
RegisterHandler | 为特定的消息类型注册一个处理程序。 |
RemoveExternalConnection | 这会删除添加了AddExternalConnection() 的外部连接。 |
ReplacePlayerForConnection | 这将替换玩家对象与不同玩家对象的连接。旧玩家对象不会被销毁。 |
Reset | 重置NetworkServer 单例。 |
ResetConnectionStats | 重置所有连接上的数据包统计信息。 |
SendByChannelToAll | 在指定的传输层QoS通道上向所有连接的客户端发送网络消息。 |
SendByChannelToReady | 将网络消息发送到指定传输层QoS通道上的“就绪”所有连接的客户端。 |
SendBytesToPlayer | 这将向特定玩家发送一个字节数组。 |
SendBytesToReady | 这会向所有准备好的玩家发送一个字节数组。 |
SendToAll | 将具有给定类型编号的消息结构发送给所有连接的客户端。 |
SendToClient | 发送消息给拥有给定连接ID的客户端。 |
SendToClientOfPlayer | 向拥有给定玩家对象实例的客户端发送消息。 |
SendToReady | 将具有给定类型编号的消息结构发送给只有准备好的客户端。 |
SendUnreliableToAll | 将给定的消息结构作为不可靠的消息发送给所有连接的客户端。 |
SendUnreliableToReady | 发送给定的消息结构仅作为不可靠的消息给已准备好的客户端。 |
SendWriterToReady | 将NetworkWriter 对象的内容发送给准备好的玩家。 |
SetAllClientsNotReady | 将所有连接的客户端标记为不再准备好。 |
SetClientNotReady | 将连接的客户端设置为未准备好。 |
SetClientReady | 设置客户端准备就绪。 |
SetNetworkConnectionClass | 这设置创建新网络连接时使用的类。 |
Shutdown | 这会关闭服务器并断开所有客户端的连接。 |
Spawn | 在准备好的所有客户端上产生给定的游戏对象。 |
SpawnObjects | 这会导致场景中的NetworkIdentity 对象在服务器上生成。 |
SpawnWithClientAuthority | 这会产生一个像NetworkServer.Spawn() 这样的对象,但也会将Client Authority 分配给指定的客户端。 |
UnregisterHandler | 取消注册特定消息类型的处理程序。 |
UnSpawn | 这需要一个已经衍生出来的对象并且不会产生它。 |
🔚