Version: 2017.3

NetworkServer.AddPlayerForConnection

切换到手册
public static bool AddPlayerForConnection (Networking.NetworkConnection conn, GameObject player, short playerControllerId);

参数

conn 添加玩家的连接。
player 为玩家生成的玩家对象。
playerControllerId 由客户端指定的玩家控制器的 ID 编号。

返回

bool 如果玩家已添加,返回 True。

描述

当 AddPlayer 消息处理程序收到玩家请求后,服务器会调用此请求,以将玩家对象与连接关联。

为连接添加玩家后,该连接的客户端就会自动准备就绪。系统将自动生成玩家对象,因此您无需为该对象调用 NetworkServer.Spawn。此函数用于“添加”玩家,而非用于“替换”连接上的玩家。如果该连接上的此 playerControllerId 已有玩家占用,操作就会失败。

using UnityEngine;
using UnityEngine.Networking;

class MyServer : MonoBehaviour { public GameObject playerPrefab;

void Start() { NetworkServer.RegisterHandler(MsgType.AddPlayer, OnAddPlayerMessage); }

void OnAddPlayerMessage(NetworkMessage netMsg) { GameObject thePlayer = (GameObject)Instantiate(playerPrefab, Vector3.zero, Quaternion.identity);

// This spawns the new player on all clients NetworkServer.AddPlayerForConnection(conn, thePlayer, 0); } }