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
Name | Description | |
---|---|---|
UxrLocomotion |
Properties
Name | Description | |
---|---|---|
IsSmoothLocomotion |
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
Name | Description | |
---|---|---|
Awake | Logs if there is a missing UltimateXR.Avatar component upwards in the hierarchy. (Overrides UxrAvatarComponent<T>.Awake().) | |
HasBlockingCapsuleCastHit | 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. | |
HasBlockingRaycastHit | 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. | |
UpdateLocomotion | Updates the locomotion and the avatar’s position/orientation the component belongs to. |
Extension Methods
Name | Description | |
---|---|---|
CheckSetEnabled | Enables/disabled the component if it isn’t enabled already. (Defined by MonoBehaviourExt.) | |
GetOrAddComponent<T> | Gets the Component of a given type. If it doesn’t exist, it is added to the GameObject. (Defined by ComponentExt.) | |
GetPathUnderScene | Gets the full path under current scene, including all parents, but scene name, for the given component. (Defined by ComponentExt.) | |
GetSceneUid | Gets an unique identifier string for the given component. (Defined by ComponentExt.) | |
GetUniqueScenePath | 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.) | |
LoopCoroutine | Creates a coroutine that simplifies executing a loop during a certain amount of time. (Defined by MonoBehaviourExt.) | |
SafeGetComponentInParent<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.) | |
ShowInInspector(Boolean) | Overloaded. Controls whether to show the current object in the inspector. (Defined by ObjectExt.) | |
ShowInInspector(Boolean, Boolean) | Overloaded. Controls whether to show the current object in the inspector and whether it is editable. (Defined by ObjectExt.) | |
ThrowIfNull | Throws an exception if the object is null. (Defined by ObjectExt.) |