在Unity3D中處理多人遊戲。和其他許多人一樣,我有一些嚴重的問題讓相機跟隨玩家。在普通遊戲中,您只需將相機對象作爲播放器對象的子對象,以使其跟隨播放器。在多人遊戲中,這不是玩家需要產卵的選項(預製)。需要幫助讓相機跟隨實例化的遊戲對象(玩家)
因此,您需要使用C#使相機跟隨使用播放器對象變換位置的播放器。這是我試過的:
public Transform target;
public float smoothing = 5f;
Vector3 offset;
public GameObject playerPrefab;
private void SpawnPlayer()
{
Network.Instantiate(playerPrefab, Vector3.up * 5, Quaternion.identity, 0);
offset = transform.position - target.position;
}
void LateUpdate()
{
Vector3 targetCamPos = target.position + offset;
transform.position = Vector3.Lerp(transform.position, targetCamPos, smoothing * Time.deltaTime);
}
Ofcourse我已經分配玩家預製的目標。所以當遊戲開始時,攝像頭的位置會變成玩家的位置。但之後,它拒絕跟隨玩家。它只是坐在那裏。
所以我已經開始與調試這樣的:
Debug.log(target.position);
它返回玩家的起始位置,但作爲球員來回移動時沒有更新。它仍然是一樣的。這顯然是相機不會跟隨玩家的原因。
問題是:爲什麼玩家位置沒有得到更新?或者最有可能的,但腳本沒有看到它。我究竟做錯了什麼?
我不確定,但你似乎通過Instantiate方法實例化播放器。但是目標沒有被賦予玩家的轉換。什麼是目標? – Everts
@fafase通過將玩家預製向其拖動,可以在Unity內分配目標。你在代碼中看不到。 – icecub