我试图在我的游戏中的角色上方放置一个画布,以显示有关其动画/健康等的一些信息,以便对其进行调试。我通过代码完成所有这些工作。因此,我首先向角色添加一个游戏对象。然后,我将画布添加到此游戏对象。这工作正常。然后,我向此游戏对象添加一个“面板”,并将图像放入其中。我想使用此图像作为将显示的文本的背景。我似乎无法使面板的大小如此之大,以至于它完全适合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 关注
- 94 浏览
添加回答
举报
0/150
提交
取消