0
我正在創建一個將成爲策略遊戲的3D遊戲。我想通過代碼(C#)創建一個面板(一組文本和按鈕的UI組),然後將它們移動到Canvas佈局中的GameObject頂部。所以我這樣做:實例化後移動UI組件
if (ThisBuilding == null)
ThisBuilding = this.gameObject;
Panel = Canvas.Instantiate(Panel);
Panel.transform.SetParent(canvas.transform, false); //false to prevent stupid scaling issues created by the parent change
Vector3 centerPosition = ThisBuilding.GetComponentInChildren<MeshRenderer>().bounds.center; //the building GameObject contains a MeshRenderer component in its only children.
panelRect.anchoredPosition = Vector3.Lerp(panelRect.anchoredPosition, centerPosition, 1.0f);
的事情是,這個腳本的運行(在開始()),每建築一次,希望該小組將被實例化了3次,每個小組對應於一個建築,但對於一些奇怪的原因,這是行不通的。
預期結果:每個面板被實例化時,該位置是相同實例化它建築物(建築物遊戲物體保持腳本和開啓/關閉面板)
實績:即使面板確實實例化了3次,因爲它們都處於相同位置,即使Update()函數改變其位置也不會改變。我究竟做錯了什麼?
人!這工作完美!非常非常感謝你!它的工作完美無瑕! –
不客氣,我很高興我能幫到你! –