【Unity】Transform—“本地坐标”与“世界坐标”相互转换

1.本地坐标转世界坐标

现有:
在这里插入图片描述
Lesson10脚本的代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Lesson10 : MonoBehaviour
{
    void Start()
    {
        //1.本地坐标系的点 转换为 相对世界坐标系的点(最常用的)
        //受到缩放影响
        //把要被转换的本地坐标系的点传进去
        print(this.transform.TransformPoint(Vector3.forward)); //Vector.forward就是点(0,0,1)

        //2.本地坐标系的方向 转换为 相对世界坐标系的方向
        //不受缩放影响
        //把要被转换的本地坐标系的方向传进去
        print(this.transform.TransformDirection(Vector3.forward));
        //受缩放影响
        print(this.transform.TransformVector(Vector3.forward));
    }
}

运行:
在这里插入图片描述

2.世界坐标转本地坐标

可以帮助我们判断一个物体大概在我的什么方位

现有:
在这里插入图片描述
Lesson10脚本的代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson10 : MonoBehaviour
{
    void Start()
    {
        //1.世界坐标系的点 转换为 相对本地坐标系的点
        //把要被转换的世界坐标系的点传进去
        //受到物体缩放的影响
        print(this.transform.InverseTransformPoint(Vector3.forward));

        //2.世界坐标系的方向 转换为 相对本地坐标系的方向
        //不受缩放影响
        //把要被转换的世界坐标系的方向传进去
        print(this.transform.InverseTransformDirection(Vector3.forward));
        //受缩放影响
        print(this.transform.InverseTransformVector(Vector3.forward));
    }
}

运行:
在这里插入图片描述


版权声明:本文为SEA_0825原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。