我嘗試了一種在畫布內實體化 TMP 的方法。當我的預制件出現時,它的尺寸與原始預制件不同,我不知道是什么問題。
public GameObject MyParent;
public GameObject MyChild;
public void Start()
{
GameObject mChild = Instantiate(MyChild);
mChild.transform.parent = MyParent.transform;
}
uj5u.com熱心網友回復:
這是更改任何變換的父級時的常見現象。
用解決方案解釋 -
在 Unity 中,層次結構中任何物件的位置、縮放和旋轉都相對于它的父物件。
這就是為什么您的“MyChild”物件的大小會在您將其設為畫布的子物件后立即更新。
解決此問題 -存盤原始物件的大小(例如 = originalSize)并在更改物件的父物件后,將新物件的大小設定為 originalSize 變數
public GameObject MyParent;
public GameObject MyChild;
private Vector3 originalSize;
public void Start()
{
GameObject mChild = Instantiate(MyChild);
originalSize = mChile.transform.scale;
mChild.transform.parent = MyParent.transform;
mChild.transform.localScale = originalSize;
}
這應該可以解決問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/417330.html
標籤:
