目前各個玩家物件看起來是相同的,這會讓玩家無法辨識哪個角色是自己的,為了讓玩家可以辨識自己的角色,我們將玩家所屬的物件變為藍色。
- 開啟PlayerController腳本
- 新增OnStartLocalPlayer函式來改變玩家物件的顏色
using UnityEngine;
using UnityEngine.Networking;
public class PlayerController : NetworkBehaviour
{
void Update()
{
if (!isLocalPlayer)
{
return;
}
float x = Input.GetAxis("Horizontal") * Time.deltaTime * 150.0f;
float z = Input.GetAxis("Vertical") * Time.deltaTime * 3.0f;
transform.Rotate(0, x, 0);
transform.Translate(0, 0, z);
}
public override void OnStartLocalPlayer()
{
GetComponent<MeshRenderer>().material.color = Color.blue;
}
}
這個函式只能由用戶端上的LocalPlayer呼叫,所以只會看到自己的玩家物件變成藍色,如果某功能只適用於本機,那麼OnStartLocalPlayer函式是做初始化的好地方,如攝影機設定或各種輸入等等。NetworkBehaviour類別中還有許多有用的虛擬函式,更多資訊可以參考這裡或這裡。完成後像上一篇教學一樣,啟動兩邊的實例測試結果,我們可以看到由本機控制的角色變為藍色,而另一個角色則保持白色。
上一篇:測試多人連線的移動
下一篇:射擊(單機)
建立一個簡單的多人連線範例
沒有留言:
張貼留言