Unity2019学习:常用功能--RectTransform脚本控制

RectTransform设置游戏对象大小位置的时候,不仅在Unity编辑器中与Transform不一样,程序控制上也不一样。

RectTransform作为一个组件存在于游戏对象上,所有控制方法和属性都在该组件下。

RectTransform下的rect类可以获取游戏对象的宽(rect.width)和高(rect.height),但是不可以直接设置。

Pivot 轴心和 Anchors 锚点

RectTransform类下的pivot属性可以用于获取和设置游戏对象的轴心。

RectTransform类下的anchorMin和anchorMax属性可以用于获取和设置游戏对象的锚点。

通常修改轴心或者锚点都会让UI的位置或大小发生变化。

offset 锚点偏移

锚点偏移是2个矢量,一个是从左下角的锚点到游戏对象的左下角,一个是从右上角的锚点到游戏对象的右上角。无论当前锚点是形成点,线或者矩形,都能通过这样2个矢量来设置游戏对象的位置和大小。

在这里插入图片描述

SetSizeWithCurrentAnchors

offset锚点偏移用于定位游戏对象比较方便,如果只是设置大小会略显麻烦,特别是在游戏对象进行大小变化的是。这个时候推荐使用SetSizeWithCurrentAnchors方法来设置大小。

SetSizeWithCurrentAnchors方法的第一个参数是选择设置宽(RectTransform.Axis.Horizontal)还是高(RectTransform.Axis.Vertical),第二个参数是具体大小。

rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 200);
rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 100);

anchoredPosition

anchoredPosition属性是一个矢量,通过该矢量可以获取及设置当前游戏对象的位置。

首先,根据游戏对象的轴心,计算出在锚点矩阵中的参考点位置。

  • 如果是矩阵,则参考点到轴心的矢量即为anchoredPosition。
  • 如果是线段,则锚点矩阵减少一个维度后,参考点的对应位置到轴心的矢量即为anchoredPosition。
  • 如果是点,则是从锚点到轴心的矢量即为anchoredPosition。

在这里插入图片描述

SetInsetAndSizeFromParentEdge

SetInsetAndSizeFromParentEdge方法是以父游戏对象的上、下、左、右4个点中的一个作为参照,同时设置游戏对象到该点的距离和对应方向上的值。

在这里插入图片描述

简单总结

  • 在程序中,修改轴心和锚点比较容易,只是修改完以后,都需要重新设置一下游戏对象的大小和位置。
  • offset锚点偏移设置位置和大小比较方便,但是如果要实现移动或者变形动画就比较麻烦。
  • 变形推荐使用SetSizeWithCurrentAnchors方法,移动推荐使用anchoredPosition属性,因为这2种做法和锚点无关,在任何情况下都能使用。
  • SetInsetAndSizeFromParentEdge可以同时设置位置和大小,但是会修改锚点。仅推荐游戏对象原有参考本身就是父游戏对象4边中间的点的时候使用。

示例场景:https://download.csdn.net/download/wuyt2008/13763453

B站视频链接:https://www.bilibili.com/video/BV1kh41117xH/

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值