关于代码添加ui控件代码修改recttransform的问题探索
简书链接:关于代码添加ui控件代码修改recttransform的问题探索
文章字数:517,阅读全文大约需要2分钟
问题起因:
我通过代码添加了预制体发现位置不对,看不见了,通过检查器看到x 和y为-115,-351,发现修改pos没有任何作用
XO4KROL38_8)2W.png](https://upload-images.jianshu.io/upload_images/2815884-f4b2e81c233e0f18.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
从网上找到相关修改的代码
https://www.csdn.net/tags/NtTakg1sMzgzNzgtYmxvZwO0O0OO0O0O.html
但是发现并没有效果,我当时走火入魔不认为是修改anchoredPosition3D实现的,
于是我把各种代码都加进去了,而 anchoredPosition3D正确的代码我则放到了前面,后面又一次修改是无效的
![4E)S9MB0
结果还是没有作用,
1 | anchoredPosition:(-115.00, -351.87, 0.00),pos:(0.00, 0.00, 0.00),offset:(-165.00, -401.87),(-165.00, -401.87),auchor:(0.50, 1.00),(0.50, 1.00) |
可以看出修改anchorposition会导致 offset,pos等全部发生变化,
所以 总结:
修改anchorPosition就可以实现 位置x y的修改
1 | GameObject newObj = Instantiate(Resources.Load("MyText")) as GameObject;//加载prefab |
上面的MyText是预制体是一个text,并且放在Assets/Resources下面
我的需求就是把这个文本添加到 左边面板里面
另外 修改/rectTransform.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Top,0, rectTransform.sizeDelta.y);
可以实现顶部,但是只有这个代码还无法做到居中,
这个预制体目前设置的是顶部居中的,
如果预制体不是顶部的那么就一直在中间显示了。