孙广东 2015.7.21
本节提供了与网络系统一起使用的组件的详细信息。
NetworkClient 是一个 HLAPI 类,管理网络连接到服务器 — — 对应着 UNET NetworkServer。它可以用于将消息发送到服务器和从服务器接收消息。NetworkClient 还可以帮助管理衍生的网络对象和 RPC 消息和网络事件的路由。
Property: | Function: | |
---|---|---|
serverIP | The IP address of the server that this client is connected to. | |
serverPort | The port of the server that this client is connected to. | |
connection | The NetworkConnection object this client is using. | |
handlers | The set of registered message handler functions. | |
numChannels | The number of configured NetworkTransport QoS channels. | |
isConnected | True if the client is connected to a server. | |
allClients | List of active network clients (static). | |
active | True if any network clients are active (static). |
NetworkConnection是一个 HLAPI 类,封装了网络连接。NetworkClient 对象具有一个NetworkConnections,和 NetworkServers 有多个NetworkConnections------来自每个客户端。 网络连接已能发送字节数组,或序列化的对象作为 网络消息。
Property: | Function: | |
---|---|---|
hostId | The NetworkTransport hostId for this connection. | |
connectionId | The NetworkTransport connectionId for this connection. | |
isReady | Flag to control whether state updates are sent to this client. | |
address | The IP address of the end-point that this connection is connected to. | |
playerControllers | The set of players that have been added with AddPlayer(). |
NetworkIdentity 组件是Unity 组件,它是 新网络系统的核心 。它可以被添加到对象。从-AddComponents->Network->NetworkIdentity 菜单项 。此组件控制对象的网络标识。这表明 NetworkIdentity 组件在一个对象上如下所示:
与Unity Network System的 服务器权威系统,网络的对象的NetworkIdentities 必须是由服务器使用 NetworkServer.Spawn()所 “spawned” 。这会导致他们被分配NetworkInstanceId,在连接到服务器的客户端上创建。
场景物体比动态实例化对象有点区别对待。这些对象是全部 出现在客户端和服务器上的场景中。然而,当建设游戏 的所有场景对象的identities 将被都禁用。当客户端连接到服务器时,服务器将通知客户端应启用哪些场景对象 和其最新的状态信息是通过 spawn 消息。这可确保客户端将不会包含对象放置在现在不正确的位置,当他开始playing,或 甚至对象会立即被删除连接因为一些事件中移除他们之前客户端连接。"ServerOnly" 复选框将确保这某一特定对象不会催生了或在客户端上启用。
此组件包含像什么场景 ID,网络 ID 和 资产 ID 已分配给对象的跟踪信息。场景 ID 是一个在 NetworkIdentity 组件的所有场景物体中有效。网络 ID 是此特定对象实例的 ID,可能有多个对象的特定对象类型的实例化和 网络 ID 用于的标识的对象,例如,网络更新应适用。资产 ID 是指什么源资产对象被实例化。这是内部使用,当特定对象预置被网络spawned 。此信息被公开的预览面板底部的Inspector:
在运行时是要在此处显示的详细信息 (disabled NetworkBehaviour 显示 非粗体):
Property: | Function: | |
---|---|---|
netId | A unique identifier for this network session, assigned when spawned. | |
sceneId | A unique identifier for networked objects in a scene. This is only populated in play-mode. | |
isClient | True if this object is running on a client. | |
isServer | True if this object is running on the server, and has been spawned. | |
hasAuthority | True if this object is the authoritative version of the object. So either on a the server, or on the client with localPlayerAuthority. | |
localPlayerAuthority | True if this object is controlled by the client that owns it - the local player object on that client has authority over it. This is used by other components such as NetworkTransform. | |
serverOnly | A flag to make this object not be spawned on clients. | |
assetId | This identifies the prefab associated with this object (for spawning). | |
playerControllerId | The identifier of the controller associated with this object. Only valid for player objects. | |
observers | The list of client NetworkConnections that are able to see this object. This is read-only. |
NetworkLobbyManager 是一种特殊的网络管理器,主要玩游戏进入主场景之前的提供一个多层的大堂。
• 提供网络大厅的player限制
• 游戏开始时所有玩家都是准备好了
• 玩家不能加入game-in-progress
• 支持“Couch Multiplayer”
• 可自定义的方式为玩家选择在大厅中的选项
有两种类型的球员与 NetworkLobbyManager 的对象:
LobbyPlayer 对象
• 对于每个玩家
• 创建客户端连接,或player被添加时
• 持续,直到客户端断开连接
• 拥有准备flag和配置数据
• 处理在大厅里的命令
• 应该使用 NetworkLobbyPlayer 组件
GamePlayer 对象
• 对于每个玩家
• 开始游戏场景时被创建
• 重新进入大厅时被摧毁
• 处理在游戏中命令
Property: | Function: |
---|---|
showLobbyGUI | Show the legacy OnGUI controls for the lobby. |
maxPlayers | The maximum number of players allowed in the lobby. |
maxPlayersPerConnection | The maximum number of players allowed to be added for each client connection. |
lobbyPlayerPrefab | The prefab to create for players when they enter the lobby. |
gamePlayerPrefab | The prefab to create for players when the game starts. |
lobbyScene | The scene to use for the lobby. |
playScene | The scene to use for main game play. |
Property: | Function: | |
---|---|---|
ShowLobbyGUI | True to show the legacy user interface for players in the lobby. | |
slot | The slot that this player was allocated too. Only one player can be in each lobby slot. | |
readyToBegin | Flag to control if the player is ready for the game to start. |
网络 管理器是一个更高的水平类 使您可以控制一个网络游戏的状态 。它提供了界面编辑器用于 ,和场景,以用于不同的网络游戏状态的预置控制网络的配置中。
Property: | Function: |
---|---|
networkPort | The network port used to listen on and connect to. |
networkAddress | The network address to connect to. |
dontDestroyOnLoad | Flag to make the NetworkManager persist between scenes. |
runInBackground | Flag to make the player run in the background by default. |
sendPeerInfo | Flag to have network information on all peers sent to all participating clients. |
maxDelay | The maximum time in seconds to delay buffered messages. |
logLevel | The level of network logging to write. |
playerPrefab | The prefab to instantiate for players when a client connects. |
autoCreatePlayer | Flag to automatically add a player when a client connects. |
playerSpawnMethod | How to spawn players at StartPositions. |
offlineScene | The scene to switch to when the network goes off-line. |
onlineScene | The scene to switch to when the network goes on-line. |
spawnPrefabs | The set of registered spawnable prefabs. |
startPositions | The set of NetworkStartPosition objects found in the scene. |
customConfig | Flag to use custom network configuration (advanced). |
connectionConfig | Advanced custom network configuration data. |
maxConnections | The maximum number of connections allowed by the server. |
channels | The number of transport layer QoS Channels. |
secureTunnelEndpoint | End point for XBox Live connectivity. |
useSimulator | Flag to use network conditions simulation. |
simulatedLatency | Latency in milliseconds to add when network simulator active. |
packetLossPercentage | The percentage of packet loss to add when network simulator active |
matchHost | Matchmaker host address. |
matchPort | Matchmaker host port. |
Property: | Function: |
---|---|
showGUI | Flag to show the default UI. |
offsetX | The horizontal pixel offset of the UI. |
offsetY | The vertical pixel offset of the UI.. |
NetworkManagerHUD 允许您查看在编辑器中,例如connections,很多细节 列出 已知的网络的对象,和激活 玩家对象。