• NetworkManager

    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