2015-05-23 49 views
3

我想使用腳本產卵預製。這是代碼,代碼寫在遊戲面板中。團結產卵預製

Network.Instantiate (ninjaPreFab, new Vector3 (-53, -34, 0), Quaternion.identity, 0); 

但是,它不是在畫布內產卵。相反,它總是在畫布之外產生,這意味着它不是畫布的子項,因此不會出現在遊戲內部,因爲我正在使用渲染 - 疊加相機。我已經嘗試將畫布的排序順序設置爲-1,但仍然無效。我知道它產生了,因爲編輯清楚地表明有這個新對象。

+0

http://forum.unity3d.com/threads/instantiating-prefab-with-canvas.266532/ – MickyD

回答

0

問題解決了。我不應該在畫布中產生遊戲對象/精靈。畫布僅用於UI。

3

如果使用新的Unity UI,GUI元素必須是畫布遊戲對象的子元素,並且它們的座標必須設置在畫布的邊界內,而不是太靠近相機近剪裁平面(在視錐內)如果他們要在屏幕上可見。如果使用UI畫布,請查看Unity UI教程here

根據您的代碼段,看起來您的UI元素由於座標值上的負號而不可見。嘗試將它們改爲正值,看看會發生什麼。此外,父母的UI元素的畫布是這樣的:

var newUIElement = Network.Instantiate (ninjaPreFab, new Vector3 (53, 34, 0), Quaternion.identity, 0); 
newUIElement.transform.parent = canvas; 
+0

這隻會確保產卵UI元素的人會看到新的UI元素。例如,當服務器產生它時,只有服務器能夠查看ui元素,客戶端不會看到它。 – Ophitect

+0

問題解決。我不應該在畫布中產生遊戲對象/精靈。畫布僅用於UI。 – Ophitect