【Unity】動態新增Prefab預製體位置控制

ibuyio發表於2020-12-25

專案場景:

專案場景中,需要動態新增一個Prefab,但是該預製體的位置和我們預設的不一致。

問題描述:

需要注意預製體Transfom應該如何設定,一般情況下的邏輯是:
 GameObject effect = Instantiate(Resources.Load("Text/Window")) as GameObject;//載入prefab
 effect.transform.parent = GameObject.Find("Canvas").transform;//將prefab加入Canvas節點下

可能我們直接手動的把預製體拖拽到Canvas節點下,表現正常,但通過程式碼去設定卻出現了錨點錯誤的情況,實際上,新增的過程如下,將prefab初始化,然後將該節點放置在根節點下,而在根節點下,我們之前設定的引數已經不正確了。導致Prefab的位置錯誤。
在這裡插入圖片描述


解決方案:

在根節點下建立你的預製體,這樣的座標和我們動態新增的座標是一致的。儘量使用

在這裡插入圖片描述
這種錨點模式,設定好以後,如果在根節點下是你想要的形狀和位置,那我們通過程式碼動態新增也是正確的。

相關文章