Class XRBodyTransformer
Behavior that manages user locomotion via transformation of an Unity.XR.CoreUtils.XROrigin.Origin. This behavior applies queued IXRBodyTransformations every Update().
Inherited Members
Namespace: UnityEngine.XR.Interaction.Toolkit.Locomotion
Assembly: Unity.XR.Interaction.Toolkit.dll
Syntax
[AddComponentMenu("XR/Locomotion/XR Body Transformer", 11)]
[HelpURL("https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@3.0/api/UnityEngine.XR.Interaction.Toolkit.Locomotion.XRBodyTransformer.html")]
[DefaultExecutionOrder(-205)]
public class XRBodyTransformer : MonoBehaviour
Properties
bodyPositionEvaluator
Object supplied to transformations that determines the position of the user's body. If null on OnEnable(), this will be set to a shared instance of UnderCameraBodyPositionEvaluator.
Declaration
public IXRBodyPositionEvaluator bodyPositionEvaluator { get; set; }
Property Value
Type | Description |
---|---|
IXRBodyPositionEvaluator |
Remarks
Setting this property at runtime also re-links the constrainedBodyManipulator to the new evaluator.
constrainedBodyManipulator
Object supplied to transformations that can be used to perform movement that is constrained by collision (optional, may be null).
Declaration
public IConstrainedXRBodyManipulator constrainedBodyManipulator { get; set; }
Property Value
Type | Description |
---|---|
IConstrainedXRBodyManipulator |
Remarks
Setting this property at runtime unlinks the previous manipulator from the body and links the new manipulator to the body.
useCharacterControllerIfExists
If true and if a constrainedBodyManipulator is not already assigned, this behavior will check in OnEnable() if the Unity.XR.CoreUtils.XROrigin.Origin has a CharacterController. If so, it will set constrainedBodyManipulator to a shared instance of CharacterControllerBodyManipulator, so that the Character Controller is used to perform constrained movement.
Declaration
public bool useCharacterControllerIfExists { get; set; }
Property Value
Type | Description |
---|---|
bool |
xrOrigin
The XR Origin whose Unity.XR.CoreUtils.XROrigin.Origin to transform (will find one if null).
Declaration
public XROrigin xrOrigin { get; set; }
Property Value
Type | Description |
---|---|
XROrigin |
Remarks
Setting this property at runtime also re-links the constrainedBodyManipulator to the new origin.
Methods
OnDisable()
See MonoBehaviour.
Declaration
protected virtual void OnDisable()
OnEnable()
See MonoBehaviour.
Declaration
protected virtual void OnEnable()
QueueTransformation(IXRBodyTransformation, int)
Queues a transformation to be applied during the next Update(). Transformations are applied
sequentially based on ascending priority
. Transformations with the same priority are
applied in the order they were queued. Each transformation is removed from the queue after it is applied.
Declaration
public void QueueTransformation(IXRBodyTransformation transformation, int priority = 0)
Parameters
Type | Name | Description |
---|---|---|
IXRBodyTransformation | transformation | The transformation that will receive a call to Apply(XRMovableBody) in the next Update(). |
int | priority | Value that determines when to apply the transformation. Transformations with lower priority values are applied before those with higher priority values. |
Reset()
See MonoBehaviour.
Declaration
protected virtual void Reset()
Update()
See MonoBehaviour.
Declaration
protected virtual void Update()
Events
beforeApplyTransformations
Calls the methods in its invocation list every Update() before transformations are applied.
Declaration
public event Action<XRBodyTransformer> beforeApplyTransformations
Event Type
Type | Description |
---|---|
Action<XRBodyTransformer> |