ugui在运行时改变RectTransform的大小和获取宽高


一、在代码中动态改变RectTransform大小的方法如下所示:

1:直接对sizeDelta属性进行赋值,其中X和Y可以对应理解成width和height。sizeDelta的具体含义:若anchors是一个点的话则代表宽高,否则为到锚点的距离

  var rt = gameObject.GetComponent<RectTransform>();
  rt.sizeDelta = new Vector2(100, 30);
2:使用SetSizeWithCurrentAnchors函数来进行设定,其中Horizontal和Vertical分别对应宽和高。此函数受当前锚点和中心点的影响。

  var rt = gameObject.GetComponent<RectTransform>();
  rt.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 100);
  rt.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 30);
3:使用SetInsetAndSizeFromParentEdge函数来进行设定。此函数不受锚点和中心的影响,其中第一个参数代表对齐方式,第二个参数为距离边界的距离,第三个参数为宽度。

  var rt = gameObject.GetComponent<RectTransform>();
  rt.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Right, 0, 100);
  rt.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Bottom, 0, 30);

二、获取RectTransform大小的方法

1:直接获取sizeDelta属性值,其中X和Y可以对应理解成width和height。sizeDelta的具体含义:若anchors是一个点的话则代表宽高,否则为到锚点的距离

2:rect.size的属性值,这里不受anchors的影响

  var rt = gameObject.GetComponent<RectTransform>();

  Debug.Log("===>" + rt .rect.size);


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM