【发布时间】:2021-12-05 09:42:38
【问题描述】:
我有一个空的GameObject,里面有Grid Layout Group。
还有几个带有Layout Elements 的Sprite 子游戏对象。
我注意到Grid Layout Group 会根据其设置“调整”它们的大小。
但不幸的是,Sprite 不受“大小”的影响,而是受“尺度”的影响。
我在Grid Layout Group 和Layout Element 都找不到任何选项,让我可以将其设置为自动调整大小而不是自动调整大小。
我在Sprite Renderer 中也找不到任何选项来让它“自动适应”它的大小。
我尝试在子对象中添加一个脚本,通过代码重新调整它们:
RectTransform rt = GetComponent<RectTransform>();
rt.localScale = rt.sizeDelta;
rt.sizeDelta = new Vector2(1, 1);
但由于某种原因,所有sizeDeltas在分配给localScale时都变成了(0,0)。
有趣的是,当我运行后在检查器中检查它时,Rect Transform 中的所有尺寸都是它应该的!
(所以结果变为:sizeDelta 不变,localScale 变为 (0,0,0)。)
有人能这么好心教我怎么解决吗?
或者也许我可以将一些选项或其他组件添加到子对象以让它们自动重新缩放?
非常感谢您的帮助!
【问题讨论】:
标签: c# unity3d autolayout