将position
从世界空间转换到局部空间。
此函数实质上与Transform.TransformPoint相反,后者用于从局部空间转换为世界空间。
请注意,返回的位置受缩放比例的影响。如果您处理的是方向向量而不是位置,请使用Transform.InverseTransformDirection。
如果您需要一次转换多个点,请考虑使用Transform.InverseTransformPoints,因为它比重复调用此函数快得多。
// Calculate the transform's position relative to the camera. using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { public Transform cam; public Vector3 cameraRelative;
void Start() { cam = Camera.main.transform; Vector3 cameraRelative = cam.InverseTransformPoint(transform.position);
if (cameraRelative.z > 0) print("The object is in front of the camera"); else print("The object is behind the camera"); } }
其他资源:Transform.TransformPoint、Transform.InverseTransformPoints、Transform.InverseTransformDirection、Transform.InverseTransformVector。
将位置x
、y
、z
从世界空间转换到局部空间。
此函数实质上与Transform.TransformPoint相反,后者用于从局部空间转换为世界空间。
请注意,返回的位置受缩放比例的影响。如果您处理的是方向向量而不是位置,请使用Transform.InverseTransformDirection。
如果您需要一次转换多个点,请考虑使用Transform.InverseTransformPoints,因为它比重复调用此函数快得多。
// Calculate the world origin relative to this transform. using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { void Start() { Vector3 relativePoint = transform.InverseTransformPoint(0, 0, 0);
if (relativePoint.z > 0) print("The world origin is in front of this object"); else print("The world origin is behind this object"); } }