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()