UxrLocomotion Class

Base class for locomotion components. Locomotion components enable different ways for an UxrAvatar to move around the scenario.

Inheritance Hierarchy

System.Object
  Object
    Component
      Behaviour
        MonoBehaviour
          UltimateXR.Core.Components.UxrComponent
            UltimateXR.Core.Components.UxrComponent(UxrLocomotion)
              UltimateXR.Core.Components.Composite.UxrAvatarComponent(UxrLocomotion)
                UltimateXR.Locomotion.UxrLocomotion
                  UltimateXR.Locomotion.UxrSmoothLocomotion
                  UltimateXR.Locomotion.UxrTeleportLocomotionBase
Namespace: UltimateXR.Locomotion
Assembly: UltimateXR (in UltimateXR.dll) Version: 0.0.0.0

Syntax

C#

public abstract class UxrLocomotion : UxrAvatarComponent<UxrLocomotion>


The UxrLocomotion type exposes the following members.

Constructors

NameDescription
Protected methodUxrLocomotion

Properties

NameDescription
Public propertyIsSmoothLocomotion

Gets whether the locomotion updates the avatar each frame. An example of smooth locomotion is UxrSmoothLocomotion where the user moves the avatar in an identical way to a FPS video-game. An example of non-smooth locomotion is UxrTeleportLocomotion where the avatar is moved only on specific occasions.

The smooth locomotion concept should not be confused with the ability to move the head around each frame. Smooth locomotion refers to the avatar position, which is determined by the avatar’s root GameObject. It should also not be confused with the ability to perform teleportation in a smooth way. Even if some teleportation locomotion methods can teleport using smooth transitions, it should not be considered as smooth locomotion.

The smooth locomotion property can be used to determine whether certain operations, such as LOD switching, should be processed each frame or only when the avatar position changed.

Methods

NameDescription
Protected methodAwake Logs if there is a missing UltimateXR.Avatar component upwards in the hierarchy. (Overrides UxrAvatarComponent<T>.Awake().)
Protected methodHasBlockingCapsuleCastHit Checks whether a capsule cast has anything that is blocking. It filters out invalid positives such as against anything part of the avatar or a grabbed object.
Protected methodHasBlockingRaycastHit Checks whether a raycast has anything that is blocking. It filters out invalid raycasts such as against anything part of the avatar or a grabbed object.
Protected methodUpdateLocomotion Updates the locomotion and the avatar’s position/orientation the component belongs to.

Extension Methods

NameDescription
Public Extension MethodCheckSetEnabled Enables/disabled the component if it isn’t enabled already. (Defined by MonoBehaviourExt.)
Public Extension MethodGetOrAddComponent<T> Gets the Component of a given type. If it doesn’t exist, it is added to the GameObject. (Defined by ComponentExt.)
Public Extension MethodGetPathUnderScene Gets the full path under current scene, including all parents, but scene name, for the given component. (Defined by ComponentExt.)
Public Extension MethodGetSceneUid Gets an unique identifier string for the given component. (Defined by ComponentExt.)
Public Extension MethodGetUniqueScenePath Gets an unique path in the scene for the given component. It will include scene name, sibling and component indices to make it unique. (Defined by ComponentExt.)
Public Extension MethodLoopCoroutine Creates a coroutine that simplifies executing a loop during a certain amount of time. (Defined by MonoBehaviourExt.)
Public Extension MethodSafeGetComponentInParent<T> Gets the Component of a given type in the GameObject or any of its parents. It also works on prefabs, where regular GetComponentInParent(Type, Boolean) will not work: https://issuetracker.unity3d.com/issues/getcomponentinparent-is-returning-null-when-the-gameobject-is-a-prefab (Defined by ComponentExt.)
Public Extension MethodShowInInspector(Boolean)Overloaded.
Controls whether to show the current object in the inspector. (Defined by ObjectExt.)
Public Extension MethodShowInInspector(Boolean, Boolean)Overloaded.
Controls whether to show the current object in the inspector and whether it is editable. (Defined by ObjectExt.)
Public Extension MethodThrowIfNull Throws an exception if the object is null. (Defined by ObjectExt.)

See Also

Reference

UltimateXR.Locomotion Namespace