Unity教程之-Unity5.1 新的网络引擎UNET(九)Networking引用–中

 

继续上篇文章《Unity5.1 新的网络引擎UNET(九)Networking引用–上》,本节提供了与网络系统一起使用的组件的详细信息。下面开始介绍,

3、NetworkClient

NetworkClient 是一个 HLAPI 类,管理网络连接到服务器 — — 对应着 UNET NetworkServer。它可以用于将消息发送到服务器和从服务器接收消息。NetworkClient 还可以帮助管理衍生的网络对象和 RPC 消息和网络事件的路由。

Properties

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).

4、NetworkConnection

NetworkConnection是一个 HLAPI 类,封装了网络连接。NetworkClient 对象具有一个NetworkConnections,和 NetworkServers 有多个NetworkConnections——来自每个客户端。   网络连接已能发送字节数组,或序列化的对象作为 网络消息。

Properties

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().

5、NetworkIdentity

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 显示 非粗体):

Properties

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.

Hints

  • Put a NetworkIdentity component on prefabs that will be spawned.
  • A NetworkIdentity is required for every object that is networked.

6、Network Lobby Manager

NetworkLobbyManager 是一种特殊的网络管理器,主要玩游戏进入主场景之前的提供一个多层的大堂。

• 提供网络大厅的player限制
• 游戏开始时所有玩家都是准备好了
• 玩家不能加入game-in-progress
• 支持“Couch Multiplayer”
• 可自定义的方式为玩家选择在大厅中的选项

有两种类型的球员与 NetworkLobbyManager 的对象:
LobbyPlayer 对象
• 对于每个玩家
• 创建客户端连接,或player被添加时
• 持续,直到客户端断开连接
• 拥有准备flag和配置数据
• 处理在大厅里的命令
• 应该使用 NetworkLobbyPlayer 组件

GamePlayer 对象
• 对于每个玩家
• 开始游戏场景时被创建
• 重新进入大厅时被摧毁
• 处理在游戏中命令

Properties

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.

Details

  •  LobbyPlayerPrefab 插槽应填写,一个对象的 NetworkLobbyPlayer 组件。
  •  有一个lobby manager GUI。看到多人游戏大厅资产包。

7、Network Lobby Player

NetworkLobbyPlayer 是 NetworkLobbyManager 用于存储在大厅中的每个球员状态。

Properties

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.

8、Network Manager UNet

网络 管理器是一个更高的水平类  使您可以控制一个网络游戏的状态 。它提供了界面编辑器用于 ,和场景,以用于不同的网络游戏状态的预置控制网络的配置中。

Properties

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.

9、Network Manager HUD

控制游戏的网络状态提供了默认的用户界面。它还在编辑器中显示有关网络管理器的当前状态信息。

Properties

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..

Details

NetworkManagerHUD 允许您查看在编辑器中,例如connections,很多细节 列出 已知的网络的对象,和激活 玩家对象。好了,本篇unity3d教程到此结束,下篇我们再会!