在開始聯機的時候,每一個Player 的名字都是Player(Clone),在這部分中我們需要把Player 的名字改成獨一無二的標識符
新建一個腳本Player_ID
using UnityEngine;
using System.Collections;
using UnityEngine.Networking;
public class Player_ID : NetworkBehaviour {
[SyncVar]private string playerUniqueIdentity;
private NetworkInstanceId playerNetID;
private Transform myTransform;
public override void OnStartLocalPlayer()
{
GetNetIdentity();
SetIdentity();
}
void Awake()
{
myTransform = transform;
}
void Update ()
{
if (myTransform.name == "" || myTransform.name == "Player(Clone)")
{
SetIdentity();
}
}
[Client]
void GetNetIdentity()
{
playerNetID = GetComponent<NetworkIdentity>().netId;
CmdTellServerMyIdentity(MakeUniqueIdentity());
}
void SetIdentity()
{
if (!isLocalPlayer)
{
myTransform.name = playerUniqueIdentity;
}
else
{
myTransform.name = MakeUniqueIdentity();
}
}
string MakeUniqueIdentity()
{
string uniqueName = "Player " + playerNetID.ToString();
return uniqueName;
}
[Command]
void CmdTellServerMyIdentity(string name)
{
playerUniqueIdentity = name;
}
}
這段代碼比較簡單,也沒什麼好說的,大家看看就能理解~