已经不止一两个同学来问过我这个问题了,如何修改一个组件的位置啊,宽高啊,旋转啊,缩放啊之类的问题,鉴于好多同学都有这个疑问,我就单独把他抽出一个小分享内容列出来。
进入今天的正题
在新场景中,我们随便创建一个Image贴图,然后看下他的inspector面板中的属性
从上图可以看出来,刚刚创建的Image,大家所关心的位置啊,宽高啊,旋转啊,缩放啊,都通通在一个叫RectTransform的组件内,所以大家想知道的这些信息也都属于这个RectTransform的属性。
知道了上面的事情之后呢,告诉大家,哪些是控制的各个属性。
首先是位置
对于位置来说,在3D世界中有xyz三种坐标轴,但是对于2D UI来说,我们通常只需要修改它的x和y
也就是下图的属性就是用来控制位置的
对于宽高来说,就是我们下面的Width和Height属性
旋转值就是Rotation属性
缩放就是Scale属性
知道了什么属性修改什么值以后呢,接下来就把代码列出来,修改这个Image组件的
代码如下
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class ChangeImageProperties : MonoBehaviour
{
#region Public Attributes
public Image m_image;
#endregion
#region Private Attributes
#endregion
#region Unity Messages
void Start()
{
//修改位置
m_image.rectTransform.anchoredPosition = new Vector2(50.0f, 50.0f);
//修改宽高
m_image.rectTransform.sizeDelta = new Vector2(120.0f, 120.0f);
//修改旋转
m_image.rectTransform.localRotation = Quaternion.Euler(new Vector3(20.0f, 10.0f, 30.0f));
//修改缩放
m_image.rectTransform.localScale = new Vector3(1.2f, 1.2f, 1.2f);
}
#endregion
#region Public Methods
#endregion
#region Override Methods
#endregion
#region Private Methods
#endregion
#region Inner
#endregion
}
默认的Image属性图如下
运行后的修改属性图如下
好了,最后我再把关键代码粘贴一次
//修改位置
m_image.rectTransform.anchoredPosition = new Vector2(50.0f, 50.0f);
//修改宽高
m_image.rectTransform.sizeDelta = new Vector2(120.0f, 120.0f);
//修改旋转
m_image.rectTransform.localRotation = Quaternion.Euler(new Vector3(20.0f, 10.0f, 30.0f));
//修改缩放
m_image.rectTransform.localScale = new Vector3(1.2f, 1.2f, 1.2f);
以上就是今天的分享内容了,希望可以帮助更多需要的同学
大家下期分享见
本文分享自 韩东吉的Unity杂货铺 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!