版本: Unity 6 (6000.0)
语言English
  • C#

Transform.InverseTransformPoint

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每个更改建议,并在适用的情况下进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册

声明

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"); } }

声明

public Vector3 InverseTransformPoint(float x, float y, float z);

描述

将位置xyz从世界空间转换到局部空间。

此函数实质上与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"); } }