2016-08-15 85 views
1

我有一個關於UNET系統的問題。Unity [UNET]同步非玩家對象變換

場景中有一些物體可以被拾取。我想在玩家選中時同步變換該對象。

對象有一個NetworkIdentity組件,檢查LocalPlayerAuthority。它也有一個NetworkTransform腳本,但轉換隻能從主機同步到客戶端,而不是相反。因此,如果我在主機端移動對象,所有客戶端都會看到更改,但是如果客戶端移動了它,那麼只有該特定客戶端才能看到更改。爲了使雙方同步,我需要做些什麼?

回答

0

沒關係,我已經解決了這個問題。

我所要做的就是使用player對象來對非玩家對象的AssignLocalAuthority

+0

你想在回答中分享代碼片段嗎?謝謝 –

+1

在播放器對象上,使用非播放器的netId參數在命令函數中調用'AssignLocalAuthority'(在主機端調用它)目的。您可以從NetworkIdentity組件獲取netId。 我像這樣給非玩家對象分配權限。希望它有助於:'NetworkManagerVR.Instance.localNetworkPlayer.CmdAssignObjectAuthority(GetComponent ().netId);' –

+0

謝謝,但你應該將它添加到答案中,以供將來的用戶使用。 –