Unity - transform使用

发布时间:2024年01月19日

Test_03

TransformTest

控制物体位置和物体间的父子关系

public class TransformTest : MonoBehaviour
{
    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);
        // 【获取方向向量】
        //      前方(Z轴,蓝色)
        Debug.Log(transform.forward);
        //      右方(X轴,红色)
        Debug.Log(transform.right);
        //      上方(Y轴,绿色)
        Debug.Log(transform.up);
        
        // 父子关系
        //      获取父物体
        GameObject go = transform.parent.gameObject;
        //      获取子物体个数
        Debug.Log(transform.childCount);
        //      解除所有子物体与该物体之间的父子关系
        transform.DetachChildren();
        // 获取子物体
        //      使用子物体名称
        Transform trans = transform.Find("Child");
        //      使用子物体索引
        trans = transform.GetChild(0);
        // 判断一个物体(“Child” -- trans)是不是另一个物体("Sphere" -- transform)的子物体
        bool res = trans.IsChildOf(transform);
        Debug.Log(res);
        // 【建立父子关系】
        //      将一个物体(transform)设置成另一个物体(trans)的父物体
        trans.SetParent(transform);
    }

    
    void Update()
    {
        // 令物体时时刻刻都看向(0,0,0)点
        transform.LookAt(Vector3.zero);
        // 【旋转】 物体绕x轴旋转,每帧旋转1度(自转)
        transform.Rotate(Vector3.right, 1);
        // 【旋转】 物体以y轴,绕 Vector3.zero 旋转,每帧转动5度(公转)
        transform.RotateAround(Vector3.zero, Vector3.up, 1);
        // 【移动】 以 Vector3.forward 方向,每帧移动0.1f
        transform.Translate(Vector3.forward * 0.1f);
    }
}

文章来源:https://blog.csdn.net/qq_44897391/article/details/135699433
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。