InverseTransformDirection
Transforms a direction from world space to local space. The opposite of Transform.TransformDirection.
Read time 2 minutesLast updated 4 days ago
Definition
- Type: Method
- Namespace: UnityEngine
- Assembly: UnityEngine.CoreModule
InverseTransformDirection(Vector3)
Transforms a from world space to local space. The opposite of Transform.TransformDirection.
directionpublic Vector3 InverseTransformDirection(Vector3 direction)
Parameters
Returns
Type | Description |
|---|---|
| Vector3 |
Remarks
This operation is not affected by scale or position of the transform. The transformed vector has the same length as the original.
If you need the inverse operation to transform from local space to world space you can use Transform.TransformDirection
You should use Transform.InverseTransformPoint if the vector represents a position in space rather than a direction.
If you need to transform many directions at once consider using Transform.InverseTransformDirections instead as it is much faster than repeatedly calling this function.
using UnityEngine;public class Example : MonoBehaviour{ void Start() { // transform the world forward into local space: Vector3 relative; relative = transform.InverseTransformDirection(Vector3.forward); Debug.Log(relative); }}
Additional Resources:Transform.TransformDirection, Transform.InverseTransformDirections, Transform.InverseTransformPoint, Transform.InverseTransformVector.
InverseTransformDirection(float, float, float)
Transforms the direction , , from world space to local space. The opposite of Transform.TransformDirection.
xyzpublic Vector3 InverseTransformDirection(float x, float y, float z)
Parameters
Returns
Type | Description |
|---|---|
| Vector3 |
Remarks
This operation is not affected by scale or position of the transform. The transformed vector has the same length as the original.
If you need the inverse operation to transform from local space to world space you can use Transform.TransformDirection
You should use Transform.InverseTransformPoint if the vector represents a position in space rather than a direction.
If you need to transform many directions at once consider using Transform.InverseTransformDirections instead as it is much faster than repeatedly calling this function.
using UnityEngine;public class Example : MonoBehaviour{ void Start() { // transform the world forward into local space: Vector3 relative; relative = transform.InverseTransformDirection(Vector3.forward); Debug.Log(relative); }}