Unity中的Transform变换组件

Transform变换组件

场景中的每个对象都有一个变换组件。 它用于存储和操作对象的位置、旋转和缩放。

Start()方法中的使用

1.访问与获取

public class No6_Transform : MonoBehaviour
{
    
    
    void Start()
    {
    
    
        Debug.Log(this.transform);//输出当前组件挂载在的游戏物体的transform组件
        Debug.Log(grisGo.transform);//输出grisGo游戏物体的transform组件
    } 
}

2.成员变量

public class No6_Transform : MonoBehaviour
{
    
    
    public GameObject grisGo;

    void Start()
    {
    
    
        Transform grisTrans = grisGo.transform;//使用变量grisTrans接收储存grisGo的transform
        //2.成员变量
        Debug.Log("Gris变换组件所挂载的游戏物体名字是:"+grisTrans.name);
        Debug.Log("Gris变换组件所挂载的游戏物体引用是:"+grisTrans.gameObject);
        Debug.Log("Gris下的子对象(指Transform)的个数是:"+grisTrans.childCount);
        Debug.Log("Gris世界空间中的坐标位置(position)是:" + grisTrans.position);
        Debug.Log("Gris以四元数形式表示的旋转(rotation)是:" + grisTrans.rotation);
        Debug.Log("Gris以欧拉角形式表示的旋转(以度数为单位)是"+grisTrans.eulerAngles);
        Debug.Log("Gris的父级Transform是:"+grisTrans.parent);
        Debug.Log("Gris相对于父对象的位置坐标是:"+grisTrans.localPosition);
        Debug.Log("Gris相对于父对象以四元数形式表示的旋转是:" + grisTrans.localRotation);
        Debug.Log("Gris相对于父对象以欧拉角形式表示的旋转(以度数为单位)是:" + grisTrans.localEulerAngles);
        Debug.Log("Gris相对于父对象的变换缩放是:"+grisTrans.localScale);
        Debug.Log("Gris的自身坐标正前方(Z轴正方向)是:"+grisTrans.forward);
        Debug.Log("Gris的自身坐标正右方(X轴正方向)是:" + grisTrans.right);
        Debug.Log("Gris的自身坐标正上方(Y轴正方向)是:" + grisTrans.up);
    } 
}

3.查找

公有方法

public class No6_Transform : MonoBehaviour
{
    
    
    public GameObject grisGo;

    void Start()
    {
    
    
        Debug.Log("当前脚本挂载的游戏对象下的叫Gris的子对象身上的Transform组件是:"+transform.Find("Gris"));
        Debug.Log("当前脚本挂载的游戏对象下的第一个(0号索引)子对象的Transform引用是:"+transform.GetChild(0));
        
        Transform grisTrans = grisGo.transform;
        Debug.Log("grisGo(拖拽引用的游戏物体)当前在此父对象同级里所在的索引位置:"+ grisTrans.GetSiblingIndex());
    } 
}

静态方法

public class No6_Transform : MonoBehaviour
{
    
    
    public GameObject grisGo;
    void Start()
    {
    
    
        Transform grisTrans = grisGo.transform;
        Transform.Destroy(grisTrans.gameObject);//通过Transform销毁grisTrans的gameObject
        //也可以直接写Destroy(grisTrans.gameObject);
        
        //下面这些与GameObject中的用法一样
        Transform.FindObjectOfType<T>();
        Transform.Instantiate();
    } 
}

猜你喜欢

转载自blog.csdn.net/qq_43007056/article/details/130781427