我試圖在我的游戲中的角色上方放置一個畫布,以顯示有關其動畫/健康等的一些信息,以便對其進行調試。我通過代碼完成所有這些工作。因此,我首先向角色添加一個游戲對象。然后,我將畫布添加到此游戲對象。這工作正常。然后,我向此游戲對象添加一個“面板”,并將圖像放入其中。我想使用此圖像作為將顯示的文本的背景。我似乎無法使面板的大小如此之大,以至于它完全適合Canvas游戲對象。文本也是如此。我在這里做錯了什么?謝謝。private void pCreateCanvas() { GameObject nCanvasGO = new GameObject(“CanvasContainer”); nCanvasGO.transform.SetParent(_ThisCharacter.transform); //parent the gameobject to the character
1 回答

縹緲止盈
TA貢獻2041條經驗 獲得超4個贊
而不是
rtPanelGO.anchorMin = new Vector2(0, 0); rtPanelGO.anchorMax = new Vector2(1, 1);
嘗試
rtPanelGO.offsetMin= new Vector2(0, 0); rtPanelGO.offsetMax = new Vector2(0, 0);
更新:關鍵是要使用ctrttransform,當然,請記住,您對它所做的某些更改不會對您創建的框架產生任何影響。您可以嘗試等待 1 幀,然后在畫布和所有游戲對象有效地添加到場景中時,將所有更改應用到面板。例如,使用協程。
請參閱 unity 論壇上的 https://forum.unity.com/threads/setting-top-and-bottom-on-a-recttransform.265415,了解有關設置頂部和底部偏移的更多信息。
UPDATE2:Talke也看看這種方法:https://docs.unity3d.com/ScriptReference/RectTransform.SetInsetAndSizeFromParentEdge.html
- 1 回答
- 0 關注
- 123 瀏覽
添加回答
舉報
0/150
提交
取消