Transform.InverseTransformPoint
Declaration
public Vector3 InverseTransformPoint(Vector3 position);Описание
Преобразует 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,.
Declaration
public Vector3 InverseTransformPoint(float x, float y, float z);Описание
Преобразует позицию 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"); } }
Дополнительные ресурсы:,Transform.TransformPoint,, ,Transform.InverseTransformPoints,, ,Transform.InverseTransformDirection,, ,Transform.InverseTransformVector,.