NetworkManager 是 HLAPI 的便捷类,用于管理网络系统。
对于简单的网络应用程序,NetworkManager 可用于控制 HLAPI。NetworkManager 提供了简单的方法来启动和停止客户端和服务器,可管理场景,并且具有虚拟函数,用户代码可以使用这些函数来实现网络事件的处理程序。NetworkManager 一次处理一个客户端。下面的示例显示了最小网络设置。
using UnityEngine; using UnityEngine.Networking;
public class Manager : NetworkManager { public override void OnServerConnect(NetworkConnection conn) { Debug.Log("OnPlayerConnected"); } }
networkSceneName | 当前网络场景的名称。 |
singleton | NetworkManager 单例对象。 |
autoCreatePlayer | 用于控制是否在连接时以及场景更改时自动创建玩家对象的标志。 |
channels | 要用于网络传输层的服务质量通道。 |
client | 管理器当前正在使用的 NetworkClient。 |
clientLoadedScene | 如果客户端在连接到服务器时加载了新场景,则为 true。 |
connectionConfig | 要使用的自定义网络配置。 |
customConfig | 用于启用自定义网络配置的标志。 |
dontDestroyOnLoad | 用于控制是否在场景更改时销毁 NetworkManager 对象的标志。 |
globalConfig | 要使用的传输层全局配置。 |
isNetworkActive | 如果 NetworkServer 或 NetworkClient 处于活动状态,则为 true。 |
logLevel | 专门面向用户的日志级别,适用于网络日志消息。 |
matches | 可加入的匹配列表。 |
matchHost | 配对服务器的主机名。 |
matchInfo | 调用 StartServer() 或 StartClient() 时将使用的 MatchInfo 实例。 |
matchMaker | UMatch MatchMaker 对象。 |
matchName | 当前匹配的名称。 |
matchPort | 配对服务的端口。 |
matchSize | 当前匹配中的最大玩家数量。 |
maxConnections | 要支持的最大并发网络连接数量。 |
maxDelay | 在连接上发送数据包之前的最大延时。 |
migrationManager | 正在与 NetworkManager 配合使用的迁移管理器。 |
networkAddress | 当前使用的网络地址。 |
networkPort | 当前使用的网络端口。 |
numPlayers | NumPlayers 是服务器上所有连接中处于活动状态的玩家对象的数量。 |
offlineScene | 离线时要切换到的场景。 |
onlineScene | 在线时要切换到的场景。 |
packetLossPercentage | 为客户端丢弃的传入和传出数据包所占的百分比。 |
playerPrefab | 用于在服务器上创建玩家对象的默认预制件。 |
playerSpawnMethod | 生成 NetworkManager 所使用玩家的当前方法。 |
runInBackground | 控制程序是否在后台运行。 |
scriptCRCCheck | 用于在服务器和客户端之间使用脚本 CRC 检查的标志。 |
secureTunnelEndpoint | 允许您指定 EndPoint 对象,而不是设置 networkAddress 和 networkPort(Xbox One 等部分平台需要)。 |
serverBindAddress | 与服务器绑定的 IP 地址。 |
serverBindToIP | 用于告知服务器是否绑定到特定 IP 地址的标志。 |
simulatedLatency | 要添加到客户端传入和传出数据包的延时(以毫秒为单位)。 |
spawnPrefabs | 将使用生成系统注册的预制件列表。 |
startPositions | 当前场景的当前已注册玩家起始位置列表。 |
useSimulator | 用于控制此 NetworkManager 启动的客户端是否使用模拟延迟和丢包的标志。 |
useWebSockets | 此属性可让 NetworkServer 监听 WebSockets 连接,而不是正常的传输层连接。 |
GetStartPosition | 此方法可根据场景中的 NetworkStartPosition 对象找到生成位置。 |
IsClientConnected | 此方法可检查 NetworkManager 是否有客户端连接到服务器。 |
OnClientConnect | 连接到服务器时在客户端上调用。 |
OnClientDisconnect | 与服务器断开连接后在客户端上调用。 |
OnClientError | 发生网络错误时在客户端上调用。 |
OnClientNotReady | 服务器告知客户端其不再准备就绪时在客户端上调用。 |
OnClientSceneChanged | 服务器启动的场景加载完成时在客户端上调用。 |
OnDestroyMatch | 在服务器上处理 NetworkMatch.DestroyMatch 请求时发生的回调。 |
OnDropConnection | 在服务器上处理 NetworkMatch.DropConnection 匹配请求时发生的回调。 |
OnMatchCreate | 在服务器上处理 NetworkMatch.CreateMatch 请求时发生的回调。 |
OnMatchJoined | 在服务器上处理 NetworkMatch.JoinMatch 请求时发生的回调。 |
OnMatchList | 在服务器上处理 NetworkMatch.ListMatches 请求时发生的回调。 |
OnServerAddPlayer | 在客户端使用 ClientScene.AddPlayer 添加新玩家时在服务器上调用。 |
OnServerConnect | 新客户端连接到服务器时在服务器上调用。 |
OnServerDisconnect | 在客户端与服务器断开连接时在服务器上调用。 |
OnServerError | 在客户端连接发生网络错误时在服务器上调用。 |
OnServerReady | 在客户端准备就绪后在服务器上调用。 |
OnServerRemovePlayer | 在客户端删除玩家时在服务器上调用。 |
OnServerSceneChanged | 当服务器使用 ServerChangeScene() 启动的场景加载完成时,在服务器上调用。 |
OnSetMatchAttributes | 在服务器上处理 NetworkMatch.SetMatchAttributes 时发生的回调。 |
OnStartClient | 此钩子会在客户端启动时调用。 |
OnStartHost | 此钩子会在主机启动时调用。 |
OnStartServer | 此钩子会在服务器启动时(包括主机启动时)调用。 |
OnStopClient | 此钩子会在客户端停止时调用。 |
OnStopHost | 此钩子会在主机停止时调用。 |
OnStopServer | 此钩子会在服务器停止时(包括主机停止时)调用。 |
ServerChangeScene | 此方法会导致服务器切换场景并设置 networkSceneName。 |
SetMatchHost | 此方法可设置 MatchMaker 服务的地址。 |
SetupMigrationManager | 此方法可设置 NetworkMigrationManager 对象,从而与此 NetworkManager 配合使用。 |
StartClient | 此方法会启动网络客户端。它使用 networkAddress 和 networkPort 属性作为要连接到的地址。 |
StartHost | 此方法会启动网络“主机”- 位于同一应用程序中的服务器和客户端。 |
StartMatchMaker | 此方法会为 NetworkManager 启动 MatchMaker。 |
StartServer | 此方法会启动一个新服务器。 |
StopClient | 停止管理器正在使用的客户端。 |
StopHost | 此方法会同时停止管理器正在使用的客户端和服务器。 |
StopMatchMaker | 停止 NetworkManager 正在使用的 MatchMaker。 |
StopServer | 停止管理器正在使用的服务器。 |
UseExternalClient | 这样一来,NetworkManager 可以使用在 NetworkManager 外部创建的客户端对象,而不是使用 StartClient()。 |
RegisterStartPosition | 将游戏对象的变换组件注册为玩家生成位置。 |
Shutdown | 完全关闭 NetworkManager 并销毁单例。 |
UnRegisterStartPosition | 取消将游戏对象的变换组件注册为玩家生成位置。 |
gameObject | 此组件附加到的游戏对象。始终将组件附加到游戏对象。 |
tag | 此游戏对象的标签。 |
transform | 附加到此 GameObject 的 Transform。 |
runInEditMode | 允许 MonoBehaviour 的特定实例在编辑模式下运行(仅可在 Editor 中使用)。 |
useGUILayout | 禁用该属性可跳过 GUI 布局阶段。 |
BroadcastMessage | 调用此游戏对象或其任何子项中的每个 MonoBehaviour 上名为 methodName 的方法。 |
CompareTag | 此游戏对象是否使用 tag 进行了标记? |
GetComponent | 如果游戏对象附加了类型为 type 的组件,则将其返回,否则返回 null。 |
GetComponentInChildren | 使用深度首次搜索返回 GameObject 或其任何子项中类型为 type 的组件。 |
GetComponentInParent | 返回 GameObject 或其任何父项中类型为 type 的组件。 |
GetComponents | 返回 GameObject 中类型为 type 的所有组件。 |
GetComponentsInChildren | 返回 GameObject 或其任何子项中类型为 type 的所有组件。 |
GetComponentsInParent | 返回 GameObject 或其任何父项中类型为 type 的所有组件。 |
SendMessage | 调用此游戏对象中的每个 MonoBehaviour 上名为 methodName 的方法。 |
SendMessageUpwards | 调用此游戏对象中的每个 MonoBehaviour 上或此行为的每个父级上名为 methodName 的方法。 |
CancelInvoke | 取消该 MonoBehaviour 上的所有 Invoke 调用。 |
Invoke | 在 time 秒后调用 methodName 方法。 |
InvokeRepeating | 在 time 秒后调用 methodName 方法,然后每 repeatRate 秒调用一次。 |
IsInvoking | 是否有任何待处理的 methodName 调用? |
StartCoroutine | 启动一个协同程序。 |
StopAllCoroutines | 停止在该行为上运行的所有协同程序。 |
StopCoroutine | 停止在该行为上运行的第一个名为 methodName 的协同程序或存储在 routine 中的协同程序。 |
将消息记录到 Unity 控制台(与 Debug.Log 相同)。 |
Awake | Awake 在加载脚本实例时调用。 |
FixedUpdate | 如果启用了 MonoBehaviour,则每个固定帧率帧调用该函数。 |
LateUpdate | 如果启用了 Behaviour,则每帧调用 LateUpdate。 |
OnAnimatorIK | 用于设置动画 IK(反向运动学)的回调。 |
OnAnimatorMove | 用于处理动画移动以修改根运动的回调。 |
OnApplicationFocus | 当玩家获得或失去焦点时,发送给所有 GameObject。 |
OnApplicationPause | 当应用程序暂停时,发送给所有 GameObject。 |
OnApplicationQuit | Sent to all game objects before the application is quit. |
OnAudioFilterRead | 如果实现了 OnAudioFilterRead,Unity 将在音频 DSP 链中插入一个自定义滤波器。 |
OnBecameInvisible | OnBecameInvisible 在渲染器对任何摄像机都不可见时调用。 |
OnBecameVisible | OnBecameVisible 在渲染器变为对任意摄像机可见时调用。 |
OnCollisionEnter | 当该碰撞体/刚体已开始接触另一个刚体/碰撞体时,调用 OnCollisionEnter。 |
OnCollisionEnter2D | 当传入碰撞体与该对象的碰撞体接触时发送(仅限 2D 物理)。 |
OnCollisionExit | 当该碰撞体/刚体已停止接触另一个刚体/碰撞体时,调用 OnCollisionExit。 |
OnCollisionExit2D | 当另一个对象上的碰撞体停止接触该对象的碰撞体时发送(仅限 2D 物理)。 |
OnCollisionStay | 对应正在接触刚体/碰撞体的每一个碰撞体/刚体,每帧调用一次 :ref::OnCollisionStay。 |
OnCollisionStay2D | 在另一个对象上的碰撞体正在接触该对象的碰撞体时发送每个帧(仅限 2D 物理)。 |
OnConnectedToServer | 成功连接到服务器后在客户端上调用。 |
OnControllerColliderHit | 当该控制器在执行 Move 时撞到碰撞体时调用 OnControllerColliderHit。 |
OnDestroy | 销毁附加的行为将导致游戏或场景收到 OnDestroy。 |
OnDisable | 该函数在行为被禁用时调用。 |
OnDisconnectedFromServer | 当连接丢失或与服务器断开连接时,在客户端上调用。 |
OnDrawGizmos | 如果您想绘制能够选择并且始终绘制的辅助图标,则可以实现 OnDrawGizmos。 |
OnDrawGizmosSelected | 如果选择了对象,则实现 OnDrawGizmosSelected 来绘制辅助图标。 |
OnEnable | 该函数在对象变为启用和激活状态时调用。 |
OnFailedToConnect | 出于某种原因连接尝试失败时,在客户端上调用。 |
OnFailedToConnectToMasterServer | 在连接到 MasterServer 时发生问题的情况下,在客户端或服务器上调用。 |
OnGUI | 系统调用 OnGUI 来渲染和处理 GUI 事件。 |
OnJointBreak | 在附加到相同游戏对象的关节断开时调用。 |
OnJointBreak2D | 在附加到相同游戏对象的 Joint2D 断开时调用。 |
OnMasterServerEvent | 在从 MasterServer 报告事件时,在客户端或服务器上调用。 |
OnMouseDown | 当用户在 GUIElement 或 Collider 上按下鼠标按钮时,将调用 OnMouseDown。 |
OnMouseDrag | 当用户单击 GUIElement 或 Collider 并仍然按住鼠标时,将调用 OnMouseDrag。 |
OnMouseEnter | 当鼠标进入 GUIElement 或 Collider 时调用。 |
OnMouseExit | 当鼠标不再处于 GUIElement 或 Collider 上方时调用。 |
OnMouseOver | 当鼠标悬停在 GUIElement 或 Collider 上时,每帧调用一次。 |
OnMouseUp | 当用户松开鼠标按钮时,将调用 OnMouseUp。 |
OnMouseUpAsButton | 松开鼠标时,仅当鼠标在按下时所在的 GUIElement 或 Collider 上时,才调用 OnMouseUpAsButton。 |
OnNetworkInstantiate | 在已通过 Network.Instantiate 进行网络实例化的对象上调用。 |
OnParticleCollision | 当粒子击中碰撞体时,将调用 OnParticleCollision。 |
OnParticleTrigger | 当粒子系统中的任何粒子满足触发模块中的条件时,将调用 OnParticleTrigger。 |
OnPlayerConnected | 每当有新玩家成功连接,就在服务器上调用。 |
OnPlayerDisconnected | 每当有玩家与服务器断开连接,就在服务器上调用。 |
OnPostRender | 在摄像机完成场景渲染后,将调用 OnPostRender。 |
OnPreCull | OnPreCull 在摄像机剔除场景前调用。 |
OnPreRender | OnPreRender 在摄像机开始渲染场景前调用。 |
OnRenderImage | OnRenderImage 在图像的所有渲染操作全部完成后调用。 |
OnRenderObject | OnRenderObject 在摄像机渲染场景后调用。 |
OnSerializeNetworkView | 用于在网络视图监视的脚本中自定义变量同步。 |
OnServerInitialized | 每当调用 Network.InitializeServer 并且完成时,对该服务器调用该函数。 |
OnTransformChildrenChanged | 当 GameObject 的变换的子项列表发生更改时,将调用该函数。 |
OnTransformParentChanged | 当 GameObject 的变换的父属性发生更改时,将调用该函数。 |
OnTriggerEnter | 当 Collider other 事件进入该触发器时调用 OnTriggerEnter。 |
OnTriggerEnter2D | 当另一个对象进入附加到该对象的触发碰撞体时发送(仅限 2D 物理)。 |
OnTriggerExit | 当 Collider other 已停止接触该触发器时调用 OnTriggerExit。 |
OnTriggerExit2D | 当另一个对象离开附加到该对象的触发碰撞体时发送(仅限 2D 物理)。 |
OnTriggerStay | OnTriggerStay is called once per frame for every Collider other that is touching the trigger. |
OnTriggerStay2D | 在另一个对象位于附加到该对象的触发碰撞体之内时发送每个帧(仅限 2D 物理)。 |
OnValidate | 加载脚本后或 Inspector 中的值发生更改时,将调用该函数(只能在 Editor 中调用)。 |
OnWillRenderObject | 如果对象可见并且不是 UI 元素,则为每个摄像机调用 OnWillRenderObject。 |
Reset | 重置为默认值。 |
Start | Start is called on the frame when a script is enabled just before any of the Update methods is called the first time. |
Update | 如果启用了 MonoBehaviour,则每帧调用 Update。 |