美文网首页
关于代码添加ui控件代码修改recttransform的问题探索

关于代码添加ui控件代码修改recttransform的问题探索

作者: 吉凶以情迁 | 来源:发表于2022-07-19 17:33 被阅读0次

问题起因:
我通过代码添加了预制体发现位置不对,看不见了,通过检查器看到x 和y为-115,-351,发现修改pos没有任何作用

U7JZ{0~OM61W`J_5M7DKVC3.png
从网上找到相关修改的代码
https://www.csdn.net/tags/NtTakg1sMzgzNzgtYmxvZwO0O0OO0O0O.html
但是发现并没有效果,我当时走火入魔不认为是修改anchoredPosition3D实现的,
于是我把各种代码都加进去了,而 anchoredPosition3D正确的代码我则放到了前面,后面又一次修改是无效的
4E)S9MB0~XO4KROL38_8)2W.png
结果还是没有作用, image.png image.png
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)

anchoredPosition1:(0.00, 0.00, 0.00),pos:(93.75, 286.84, 0.00),offset:(-50.00, -50.00),(-50.00, -50.00),auchor:(0.50, 1.00),(0.50, 1.00)


可以看出修改anchorposition会导致 offset,pos等全部发生变化,

所以 总结:

修改anchorPosition就可以实现 位置x y的修改

    GameObject newObj = Instantiate(Resources.Load("MyText")) as GameObject;//加载prefab
            print("预制体"+newObj);
            GameObject gameObjectTemp=GameObject.Find("Canvas/PanelLeft/BottomLeft");
            newObj.transform.parent = gameObjectTemp.transform;//
            newObj.GetComponent<Text>().text = gameObject.name + "fffffffffffffff";
            RectTransform rectTransform= newObj.GetComponent<RectTransform>();
            print("anchoredPosition:" + rectTransform.anchoredPosition3D + ",pos:" + rectTransform.position + ",offset:" + rectTransform.offsetMin + "," + rectTransform.offsetMin + ",auchor:" + rectTransform.anchorMin + "," + rectTransform.anchorMax);
            rectTransform.anchoredPosition3D= new Vector3(0,0,0);
            print("anchoredPosition1:" + rectTransform.anchoredPosition3D + ",pos:" + rectTransform.position + ",offset:" + rectTransform.offsetMin + "," + rectTransform.offsetMin + ",auchor:" + rectTransform.anchorMin + "," + rectTransform.anchorMax);
        

上面的MyText是预制体是一个text,并且放在Assets/Resources下面
我的需求就是把这个文本添加到 左边面板里面
另外 修改/rectTransform.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Top,0, rectTransform.sizeDelta.y);
可以实现顶部,但是只有这个代码还无法做到居中,

这个预制体目前设置的是顶部居中的,
如果预制体不是顶部的那么就一直在中间显示了。

相关文章

网友评论

      本文标题:关于代码添加ui控件代码修改recttransform的问题探索

      本文链接:https://www.haomeiwen.com/subject/kmksirtx.html