NetworkManager

NetworkManager是用于管理网络系统的HLAPI的便利类。

  1. PS:继承此类以后不能写Awake方法,不然会隐藏掉NetworkManager中的Awake方法。

对于简单的网络应用程序,可以使用NetworkManager来控制HLAPI。它提供了简单的方法来启动和停止客户端和服务器,管理场景,并具有用户代码可以用来实现网络事件处理程序的虚拟功能。NetworkManager一次处理一个客户端。下面的例子显示了一个最小的网络设置。

  1. using UnityEngine;
  2. using UnityEngine.Networking;
  3. public class Manager : NetworkManager
  4. {
  5. public override void OnServerConnect(NetworkConnection conn)
  6. {
  7. Debug.Log("OnPlayerConnected");
  8. }
  9. }
静态变量说明
networkSceneName当前网络场景的名称。
singleton当前网络场景的名称。
变量说明
autoCreatePlayer一个标志,用于控制连接时是否自动创建玩家对象,以及是否改变场景。
channels用于网络传输层的服务质量信道。
clientManager正在使用的当前的NetworkClient。
clientLoadedScene如果客户端在连接到服务器时加载了一个新的场景,返回true。
connectionConfig要使用的自定义网络配置。
customConfig标记以启用自定义网络配置。
dontDestroyOnLoad一个标志,用于控制在场景更改时是否销毁NetworkManager对象。
globalConfig要使用的传输层全局配置。
isNetworkActive如果NetworkServer或NetworkClient处于活动状态,则为true。
logLevel日志级别专门用于网络日志消息的用户。
matches可供加入的匹配列表。
matchHost配对服务器的主机名。
matchInfo将调用StartServer()或StartClient()时使用的MatchInfo实例。
matchMakerUMatch MatchMaker对象。
matchName当前匹配的名称。
matchPort匹配服务的端口。
matchSize当前游戏中玩家的最大数量。
maxConnections支持的最大并发网络连接数。
maxDelay在连接上发送数据包之前的最大延迟。
migrationManagerNetworkManager正在使用的迁移管理器。
networkAddress当前正在使用的网络地址。
networkPort当前正在使用的网络端口。
numPlayersNumPlayers是服务器上所有连接的活动玩家对象的数量。
offlineScene脱机时切换到的场景。
onlineScene在线时切换到的场景。
packetLossPercentage客户端丢弃的传入和传出数据包的百分比。
playerPrefab用于在服务器上创建玩家对象的默认预制。
playerSpawnMethodNetworkManager使用的当前产生玩家的方法。
runInBackground控制程序是否在后台运行。
scriptCRCCheck在服务器和客户端之间使用脚本CRC检查的标志。
secureTunnelEndpoint允许您指定EndPoint对象,而不是设置networkAddress和networkPort(对于某些平台(如Xbox One)是必需的)。
serverBindAddress将服务器绑定到的IP地址。
serverBindToIP标志告诉服务器是否绑定到特定的IP地址。
simulatedLatency客户端的传入和传出数据包的延迟时间(以毫秒为单位)。
spawnPrefabs将在生成系统注册的预制体列表。
startPositions当前注册的当前场景的玩家开始位置列表。
useSimulator用于控制由此NetworkManager启动的客户端是否使用模拟延迟和数据包丢失的标志。
useWebSockets这使得NetworkServer监听WebSockets连接,而不是正常的传输层连接。

 6.79 NetworkManager  - 图1