using UnityEngine.XR.Interaction.Toolkit.AR.Inputs;
using UnityEngine.XR.Interaction.Toolkit.Gaze;
using UnityEngine.XR.Interaction.Toolkit.Inputs;
using UnityEngine.XR.Interaction.Toolkit.Inputs.Readers;
using UnityEngine.XR.Interaction.Toolkit.Inputs.Simulation;
using UnityEngine.XR.Interaction.Toolkit.Interactables;
using UnityEngine.XR.Interaction.Toolkit.Interactors;
using UnityEngine.XR.Interaction.Toolkit.Interactors.Visuals;
using UnityEngine.XR.Interaction.Toolkit.Locomotion;
using UnityEngine.XR.Interaction.Toolkit.Locomotion.Gravity;
using UnityEngine.XR.Interaction.Toolkit.Locomotion.Movement;
using UnityEngine.XR.Interaction.Toolkit.UI;
namespace UnityEngine.XR.Interaction.Toolkit
{
///
/// The update order for types in XR Interaction Toolkit.
///
///
/// This is primarily used to control initialization order as the update of interactors / interaction manager / interactables is handled by the
/// Interaction managers themselves.
///
public static class XRInteractionUpdateOrder
{
///
/// Order when instances of type are updated.
///
public const int k_XRInputDeviceButtonReader = -31000;
///
/// Order when instances of type are updated.
///
public const int k_ScreenSpaceRayPoseDriver = -31000;
///
/// Order when instances of type are updated.
///
public const int k_ScreenSpaceSelectInput = -30050;
///
/// Order when instances of type are updated.
///
public const int k_ControllerRecorder = -30000;
///
/// Order when instances of type are updated.
///
public const int k_SimulatedDeviceLifecycleManager = -29995; // Before XRDeviceSimulator
///
/// Order when instances of type are updated.
///
public const int k_SimulatedHandExpressionManager = -29994; // Before XRDeviceSimulator
///
/// Order when instances of type are updated.
///
public const int k_InteractionSimulator = -29991; // Before XRBaseController
///
/// Order when instances of type are updated.
///
public const int k_DeviceSimulator = -29991; // Before XRBaseController
///
/// Order when instances of type are updated.
///
public const int k_Controllers = -29990; // After XRControllerRecorder
///
/// Order when instances of type are updated.
///
public const int k_TransformStabilizer = -29985; // After Controllers apply pose to Transforms
///
/// Order when instances of type are updated.
///
public const int k_GazeAssistance = -29980; // After input pose stabilization
///
/// Order when instances of type are updated.
///
public const int k_LocomotionProviders = -210; // Before UIInputModule
///
/// Order when instances of type are updated.
///
public const int k_TwoHandedGrabMoveProviders = -209; // After GrabMoveProvider
///
/// Order when instances of type are updated.
///
public const int k_GravityProvider = -207; // Between LocomotionProviders and XRBodyTransformer
///
/// Order when instances of type are updated.
///
public const int k_XRBodyTransformer = -205; // After LocomotionProviders
///
/// Order when instances of type are updated.
///
public const int k_UIInputModule = -200;
///
/// Order when is updated.
///
public const int k_InteractionManager = -105;
///
/// Order when instances of type are updated.
///
public const int k_InteractionGroups = -100; // After XRInteractionManager
///
/// Order when instances of type are updated.
///
public const int k_Interactors = -99; // After XRInteractionGroup
///
/// Order when instances of type are updated.
///
///
/// Executes before interactables to ensure colliders have been found and set to trigger colliders
/// so they are filtered out in the .
///
public const int k_InteractableSnapVolume = -99; // Before XRBaseInteractable
///
/// Order when instances of type are updated.
///
public const int k_Interactables = -98; // After XRBaseInteractor
///
/// Order when instances of type are updated.
///
public const int k_LineVisual = 100;
///
/// Order when is called.
///
public const int k_BeforeRenderGazeAssistance = 95;
///
/// Order when is called.
///
public const int k_BeforeRenderOrder = 100;
///
/// Order when is called.
///
public const int k_BeforeRenderLineVisual = 101; // After XRInteractionManager.OnBeforeRender
///
/// The phase in which updates happen.
///
///
///
public enum UpdatePhase
{
///
/// Frame-rate independent. Corresponds with the MonoBehaviour.FixedUpdate method.
///
Fixed,
///
/// Called every frame. Corresponds with the MonoBehaviour.Update method.
///
Dynamic,
///
/// Called at the end of every frame. Corresponds with the MonoBehaviour.LateUpdate method.
///
Late,
///
/// Called just before render. Corresponds with the callback.
///
OnBeforeRender,
}
}
}