unity 获取UI的width,height以及设置尺寸,以及从布局组中克隆UI会丢失尺寸的问题

获取宽高

rectTransform = GetComponent<RectTransform>();
float width =recttransform.rect.width
float height = rectTransform .rect.height;

设置宽高 仅适用于锚点为一个点

rectTransform .sizeDelta = new Vector2(width,height);

如果父物体使用了布局器,被克隆(无论使用gameobject克隆还是transform克隆)的子物体将失去自己的尺寸,宽高变成00,但是如果用rectTransform克隆,rectTransform中将记录原宽高

    public void BeginDragStoryEvent(RectTransform trans)
    {
    
    
        //创建克隆体,作为容器的子物体
        cloneTrans = Instantiate(trans, 父物体); //这个克隆体来自一个gridLayoutGroup,将失去自己的尺寸
        //设置位置和尺寸
        cloneTrans.localPosition = Vector3.zero; //localPosition是指父子物体的轴点的相对位置
        cloneTrans.sizeDelta = new Vector2(trans.rect.width, trans.rect.height);
    }

猜你喜欢

转载自blog.csdn.net/weixin_44568736/article/details/122242492
今日推荐