Unity3D开发之设置UI位置

我们在动态加载面板的时候就会涉及到初始化面板位置的问题,少不了设置UI位置。而UI不像3D物体可以直接设置Position。因为决定他位置的是RectTransform,并且UI会设置锚点,位置并不是固定。下面就来记录不同状况下设置UI位置的方法。

一.不设置锚点

Unity3D开发之设置UI位置_第1张图片

 直接设置LocalPosition即可。代码如下:

 RectTransform rectTransform = GetComponent();
        rectTransform.localPosition=new Vector3(-370, 147,0);//anchoredPosition3D也可以

二. 靠一侧拉伸

Unity3D开发之设置UI位置_第2张图片

 RectTransform rectTransform = GetComponent();
        rectTransform.offsetMin = new Vector2(140, 0);
        rectTransform.offsetMax = new Vector2(-880, 0);//因为和最大值比较 所以是负的
        Vector3 pos = rectTransform.anchoredPosition3D;
        pos.y = -168;
        rectTransform.anchoredPosition3D = pos;
        rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 100);

因为没有top和bottom的偏移值,所以我们设置offsetmin和offsetmax的y值都为0.以上方法设置有点麻烦,暂时没找出其他方法,有简单方法的欢迎留言。

三.向四周拉伸

Unity3D开发之设置UI位置_第3张图片

这个和上面相似,但是简化了不少。

 RectTransform rectTransform = GetComponent();
        rectTransform.offsetMin = new Vector2(140, 412 );
        rectTransform.offsetMax = new Vector2(-880, -118);//因为和最大值比较 所以是负的

 

你可能感兴趣的:(Unity)