2017-06-13 32 views
0

當我在統一多人遊戲時按下Lan主機按鈕時,它會使用我分配的預製並且層次結構中出現Runner(克隆)。但它沒有出現在屏幕上。然後當你進入場景視圖時,你會看到有一個對象,但由於某種原因它不可見。造成這種情況的問題是什麼?如何解決?當我嘗試並在多人遊戲中產卵時,我的遊戲對象不可見

回答

1

可能有很多問題,但我會給你一個檢查事項的清單。

對象在主機/服務器中是否可見?相機的位置/旋轉是否可以正確查看產生的物體的位置?你是否用Single Player的相同方式生成了Instantiate對象,或者正確使用了Unity Network的實例化方法?

Unity Networking Tutorial這個Unity Networking Tutorial詳細討論瞭如何用一個非常具體的例子來設置多人遊戲。如果您是Unity Networking的新手,我建議您從教程開始。下面顯示瞭如何實例化多人對象:

[Command] 
void CmdFire() 
{ 
    // This [Command] code is run on the server! 

    // create the bullet object locally 
    var bullet = (GameObject)Instantiate(
     bulletPrefab, 
     transform.position - transform.forward, 
     Quaternion.identity); 

    bullet.GetComponent<Rigidbody>().velocity = -transform.forward*4; 

    // spawn the bullet on the clients 
    NetworkServer.Spawn(bullet); 

    // when the bullet is destroyed on the server it will automaticaly be destroyed on clients 
    Destroy(bullet, 2.0f); 
} 

請注意,以上不足以在網絡上實例化對象。還有其他的東西,必須建立,以執行上述代碼。 Multiplayer與SinglePlayer有很大的不同,如果你不熟悉上面的代碼,你應該去檢查Unity網絡教程。

幾點需要注意:

  1. 方法必須與[命令]
  2. 方法名稱被標記必須用Cmd開始。
  3. 鏈接教程可能是只有教程由Unity提供。 (Unity Networking因其缺乏文檔而臭名昭着)。
+0

這是一個很多信息,我覺得我知道了。感謝您花時間幫助我! – Leo

+1

我很高興它有幫助:D – BrokenBacon