Unity的UGUI在SetParent后修改UI的localposition问题

Posted afuness

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity的UGUI在SetParent后修改UI的localposition问题相关的知识,希望对你有一定的参考价值。

正常情况下,UGUI设置UI的localposition可以直接赋值

UIxxx.rectTransform.localPosition = new Vector3(lineLenght[0] / 2f, 0, 0);

运行后在Unity的Inspector面板可以得到正确的()。
但如果

UIxxx.rectTransform.SetParent(GameObx]);
UIxxx.rectTransform.localPosition = new Vector3(lineLenght[0] / 2f, 0, 0);

运行后得到的坐标值是错误的。
正确的做法:

UIxxx.rectTransform.SetParent(GameObx]);
UIxxx.rectTransform.anchoredPosition= new Vector3(lineLenght[0] / 2f, 0, 0);


通过设置锚点的坐标来设置UI的position。
运行后,在Inspector面板下可以看到正确的Rect Transform。

以上是关于Unity的UGUI在SetParent后修改UI的localposition问题的主要内容,如果未能解决你的问题,请参考以下文章

Unity3D---UGUI---UI创建以及Canvas设置

Unity UGUI 自适应的个人理解

unity UGUI的控件与UI组件组合后都有哪些妙用

Unity 贪吃蛇UGUI简单的UI设计

unity ugui怎么判断鼠标在ui上

Unity-UI(UGUI详解)02.1 Canvas组件、Visual组件