我希望平滑地插入UI游戏对象位置,而不是Unity的LayoutGroup
类(特别是HorizontalLayoutGroup
)处理的默认捕捉。 问题是我不知道在布局计算完成后LayoutGroup
类用来移动UI对象的访问权限或覆盖方法或覆盖。
我一直在 UnityEngine.UI
和他们的Bitbucket存储库中搜索。如果全部失败,我将不得不创建自己的布局类,失去所有Unity的强大布局功能。
链接到Bitbucket回购:https://bitbucket.org/Unity-Technologies/ui/src/0155c39e05ca/UnityEngine.UI/UI/Core/Layout/?at=5.2
我只需要找出UnityEngine.UI
命名空间中的哪个函数或属性可以用来覆盖Unity的 LayoutGroup 子定位,以便可以将其替换为lerp或补间。 / p>
答案 0 :(得分:3)
如果您要求直接回答,请参阅LayoutGroup
class:
protected void SetChildAlongAxis(RectTransform rect, int axis, float pos, float size)
{
if (rect == null)
return;
m_Tracker.Add(this, rect,
DrivenTransformProperties.Anchors |
DrivenTransformProperties.AnchoredPosition |
DrivenTransformProperties.SizeDelta);
rect.SetInsetAndSizeFromParentEdge(axis == 0 ? RectTransform.Edge.Left : RectTransform.Edge.Top, pos, size);
}
在方法中从HorizontalOrVerticalLayoutGroup
调用
protected void SetChildrenAlongAxis(int axis, bool isVertical)
<强> BUT 强>
我建议你不要使用这段代码,因为这是所有布局(网格,水平和垂直)的基类。改变行为会影响所有派生的布局。
您可以创建自己的布局组
或
解决问题:
希望有所帮助