OnServerAddPlayer(NetworkConnectionToClient conn)
/// <summary>
/// Called on the server when a client adds a new player with NetworkClient.AddPlayer.
/// <para>The default implementation for this function creates a new player object from the playerPrefab.</para>
/// </summary>
/// <param name="conn">Connection from client.</param>
public virtual void OnServerAddPlayer(NetworkConnectionToClient conn)
{
Transform startPos = GetStartPosition();
GameObject player = startPos != null
? Instantiate(playerPrefab, startPos.position, startPos.rotation)
: Instantiate(playerPrefab);
// instantiating a "Player" prefab gives it the name "Player(clone)"
// => appending the connectionId is WAY more useful for debugging!
player.name = $"{playerPrefab.name} [connId={conn.connectionId}]";
NetworkServer.AddPlayerForConnection(conn, player);
}
-
返回void
-
在服务端被调用。
-
当一名玩家通过NetworkClient.AddPlayer加入游戏时被调用。
-
conn:来自客户端的连接。
UnityEngine.Object.Instantiate
GameObject UnityEngine.Object.Instantiate(GameObject original, Vector3 position, Quaternion rotation)
实例化(初始化)一个物体,参数提供物体的prefab,物体初始位置以及物体初始角度。
OnServerDisconnect(NetworkConnectionToClient conn)
/// <summary>Called on the server when a client disconnects.</summary>
// Called by NetworkServer.OnTransportDisconnect!
public virtual void OnServerDisconnect(NetworkConnectionToClient conn)
{
// by default, this function destroys the connection's player.
// can be overwritten for cases like delayed logouts in MMOs to
// avoid players escaping from PvP situations by logging out.
NetworkServer.DestroyPlayerForConnection(conn);
//Debug.Log("OnServerDisconnect: Client disconnected.");
}
-
返回void
-
在服务端被调用。
-
当一个客户端断开连接时被调用。