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);
}
}