物体transform操作
一、物体数据获取
void Start()
{
//位置数据
Debug.Log(transform.position);//绝对位置
Debug.Log(transform.localPosition);//相对位置(相对于父级)
//旋转数据
Debug.Log(transform.rotation);// 绝对旋转
Debug.Log(transform.localRotation);// 相对旋转(相对于父级)
Debug.Log(transform.eulerAngles);// 绝对欧拉角
Debug.Log(transform.localEulerAngles);// 相对欧拉角(相对于父级)
//获取缩放
Debug.Log(transform.localScale);
//获取向量
Debug.Log(transform.forward);
Debug.Log(transform.right);
Debug.Log(transform.forward);
}
二、物体数据操作
1.看向原点
void Update()
{
//看向原点
transform.LookAt(Vector3.zero);//也可以看向某个物体 transform.LookAt(GameObject.transform)
}
2.沿某一轴自转
void Update()
{
//自转
transform.Rotate(Vector3.up, 1);//旋转轴,每帧旋转角度
}
3.围绕某个目标点旋转
void Update()
{
//围绕某点旋转
transform.RotateAround(Vector3.zero,Vector3.up,2);//某坐标,旋转轴,速度
}
4.移动
void Update()
{
//移动
transform.Translate(Vector3.forward*0.1f);//方向速度
}
三、物体父子关系
void Start()
{
//父子关系
GameObject parent = transform.parent.gameObject;//获得父级
Debug.Log(parent.name);//获得父级名称
Debug.Log(transform.parent.gameObject.name);//获得父级名称
Debug.Log(transform.childCount);//子物体个数
Transform trans = transform.Find("Sphere");//通过名称获得子物体
trans = transform.GetChild(0);通过排序获得子物体
bool res = trans.IsChildOf(transform);//判断是否存在父子关系
Debug.Log(res);
transform.DetachChildren();//与子级解除关系
res = trans.IsChildOf(transform);//判断是否存在父子关系
Debug.Log(res);
trans.SetParent(transform);//绑定父子关系
res = trans.IsChildOf(transform);//判断是否存在父子关系
Debug.Log(res);
}
文章来源地址https://www.toymoban.com/news/detail-766346.html
文章来源:https://www.toymoban.com/news/detail-766346.html
到了这里,关于Unity物体的控制(Transform)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!