Class XRTransformStabilizer
Provides low-latency stabilization for XR pose inputs, especially useful on rays.
Inherited Members
Namespace: UnityEngine.XR.Interaction.Toolkit.Inputs
Assembly: Unity.XR.Interaction.Toolkit.dll
Syntax
[AddComponentMenu("XR/XR Transform Stabilizer", 11)]
[HelpURL("https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@3.0/api/UnityEngine.XR.Interaction.Toolkit.Inputs.XRTransformStabilizer.html")]
[DefaultExecutionOrder(-29985)]
public class XRTransformStabilizer : MonoBehaviour
Properties
aimTarget
When provided a ray, the stabilizer will calculate the rotation that keeps a ray's endpoint stable. When stabilizing rotation, it uses whatever value is most optimal - either the last rotation (minimizing rotation), or the rotation that keeps the endpoint in place.
Declaration
public IXRRayProvider aimTarget { get; set; }
Property Value
| Type | Description |
|---|---|
| IXRRayProvider |
angleStabilization
Maximum distance (in degrees) that stabilization will be applied.
Declaration
public float angleStabilization { get; set; }
Property Value
| Type | Description |
|---|---|
| float |
positionStabilization
Maximum distance (in meters) that stabilization will be applied.
Declaration
public float positionStabilization { get; set; }
Property Value
| Type | Description |
|---|---|
| float |
targetTransform
The Transform component whose position and rotation will be matched and stabilized.
Declaration
public Transform targetTransform { get; set; }
Property Value
| Type | Description |
|---|---|
| Transform |
useLocalSpace
If enabled, will read the target and apply stabilization in local space. Otherwise, in world space.
Declaration
public bool useLocalSpace { get; set; }
Property Value
| Type | Description |
|---|---|
| bool |
Methods
ApplyStabilization(ref Transform, in Transform, float, float, float, bool)
Stabilizes the position and rotation of a Transform relative to a target Transform.
Declaration
public static void ApplyStabilization(ref Transform toStabilize, in Transform target, float positionStabilization, float angleStabilization, float deltaTime, bool useLocalSpace = false)
Parameters
| Type | Name | Description |
|---|---|---|
| Transform | toStabilize | The Transform to be stabilized. |
| Transform | target | The target Transform to stabilize against. |
| float | positionStabilization | Factor for stabilizing position (larger values result in quicker stabilization). |
| float | angleStabilization | Factor for stabilizing angle (larger values result in quicker stabilization). |
| float | deltaTime | The time interval to use for stabilization calculations. |
| bool | useLocalSpace | Whether to use local space for position and rotation calculations. Defaults to false. |
Remarks
This method adjusts the position and rotation of toStabilize Transform to make it gradually align with the target Transform.
The positionStabilization and angleStabilization parameters control the speed of stabilization.
If useLocalSpace is true, the method operates in the local space of the toStabilize Transform.
ApplyStabilization(ref Transform, in Transform, in float3, float, float, float, bool)
Stabilizes the position and rotation of a Transform relative to a target Transform.
Declaration
public static void ApplyStabilization(ref Transform toStabilize, in Transform target, in float3 targetEndpoint, float positionStabilization, float angleStabilization, float deltaTime, bool useLocalSpace = false)
Parameters
| Type | Name | Description |
|---|---|---|
| Transform | toStabilize | The Transform to be stabilized. |
| Transform | target | The target Transform to stabilize against. |
| float3 | targetEndpoint | Provides the ray endpoint for rotation calculations. If using local space this value should be in local space relative to the other transforms. (optional). |
| float | positionStabilization | Factor for stabilizing position (larger values result in quicker stabilization). |
| float | angleStabilization | Factor for stabilizing angle (larger values result in quicker stabilization). |
| float | deltaTime | The time interval to use for stabilization calculations. |
| bool | useLocalSpace | Whether to use local space for position and rotation calculations. Defaults to false. |
Remarks
This method adjusts the position and rotation of toStabilize Transform to make it gradually align with the target Transform.
The positionStabilization and angleStabilization parameters control the speed of stabilization.
If useLocalSpace is true, the method operates in the local space of the toStabilize Transform.
ApplyStabilization(ref Transform, in Transform, in IXRRayProvider, float, float, float, bool)
Stabilizes the position and rotation of a Transform relative to a target Transform.
Declaration
public static void ApplyStabilization(ref Transform toStabilize, in Transform target, in IXRRayProvider aimTarget, float positionStabilization, float angleStabilization, float deltaTime, bool useLocalSpace = false)
Parameters
| Type | Name | Description |
|---|---|---|
| Transform | toStabilize | The Transform to be stabilized. |
| Transform | target | The target Transform to stabilize against. |
| IXRRayProvider | aimTarget | Provides the ray endpoint for rotation calculations (optional). |
| float | positionStabilization | Factor for stabilizing position (larger values result in quicker stabilization). |
| float | angleStabilization | Factor for stabilizing angle (larger values result in quicker stabilization). |
| float | deltaTime | The time interval to use for stabilization calculations. |
| bool | useLocalSpace | Whether to use local space for position and rotation calculations. Ignored if |
Remarks
This method adjusts the position and rotation of toStabilize Transform to make it gradually align with the target Transform.
If aimTarget is provided, it also considers the endpoint of the ray for more precise rotation stabilization.
The positionStabilization and angleStabilization parameters control the speed of stabilization.
If useLocalSpace is true, the method operates in the local space of the toStabilize Transform.
Awake()
See MonoBehaviour.
Declaration
protected void Awake()
OnEnable()
See MonoBehaviour.
Declaration
protected void OnEnable()
Update()
See MonoBehaviour.
Declaration
protected void Update()