2018年4月21日 星期六

【Unity官方教學分享】識別本地玩家物件

網頁連結

目前各個玩家物件看起來是相同的,這會讓玩家無法辨識哪個角色是自己的,為了讓玩家可以辨識自己的角色,我們將玩家所屬的物件變為藍色。

  • 開啟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類別中還有許多有用的虛擬函式,更多資訊可以參考這裡這裡

完成後像上一篇教學一樣啟動兩邊的實例測試結果,我們可以看到由本機控制的角色變為藍色,而另一個角色則保持白色


上一篇:測試多人連線的移動
下一篇:射擊(單機)

建立一個簡單的多人連線範例

沒有留言:

張貼留言

【自製小遊戲】水平思考猜謎(海龜湯)

遊戲連結 海龜湯的玩法是由出題者提出一個難以理解的事件,參與猜題者可以提出任何問題以試圖縮小範圍並找出事件背後真正的原因。但出題者僅能以「是」、「不是」或「沒有關係」來回答問題。 本遊戲蒐集各種論壇、平台的42個題目,提供給想玩海龜湯卻愁找不到題目的你們。 ...