UxrAvatarController Class
Base class for UxrAvatar controllers. UxrAvatarController components are responsible for updating the avatar. UltimateXR provides the UxrStandardAvatarController which has great functionality. For flexibility and scalability, different avatar controllers can be created if required.
Inheritance Hierarchy
System.Object
Object
Component
Behaviour
MonoBehaviour
UltimateXR.Core.Components.UxrComponent
UltimateXR.Core.Components.UxrComponent(UxrAvatarController)
UltimateXR.Core.Components.Composite.UxrAvatarComponent(UxrAvatarController)
UltimateXR.Avatar.Controllers.UxrAvatarController
UltimateXR.Avatar.Controllers.UxrStandardAvatarController
Namespace: UltimateXR.Avatar.Controllers
Assembly: UltimateXR (in UltimateXR.dll) Version: 0.0.0.0
Syntax
C#
[DisallowMultipleComponent]
[RequireComponent(typeof(UxrAvatar))]
public abstract class UxrAvatarController : UxrAvatarComponent<UxrAvatarController>
The UxrAvatarController type exposes the following members.
Constructors
Name | Description | |
---|---|---|
UxrAvatarController |
Properties
Name | Description | |
---|---|---|
AllowHandTracking | Gets or sets whether hand tracking is used when available. |
Methods
Name | Description | |
---|---|---|
CanHandInteractWithUI | Gets if the hand is available to interact with UI elements, such as pressing buttons. This is used by the UI interaction system to ignore the hand for these events. For example, when the hand is holding an object it could be desirable to not let it interact inadvertently with any user interface. | |
UpdateAvatar | Updates the avatar for the given frame. This is normally in charge of updating input devices, tracking devices and locomotion. Animation is left for a later stage (UpdateAvatarAnimation()), to make sure it is performed in the right order right after Unity has updated the built-in animation components such as Animator. | |
UpdateAvatarAnimation | Updates the animation and rig transforms for the given frame. It is performed in a later stage than UpdateAvatar() to make sure the transforms override the transforms that Unity may have updated using built-in components such as Animator. | |
UpdateAvatarManipulation | Executes the avatar manipulation actions based on user input. | |
UpdateAvatarPostProcess | Updates the avatar for a given frame, at the end of all stages and UltimateXR manager updates such as the UxrGrabManager. It can be used to perform operations that require to be executed at the end of all stages, such as Inverse Kinematics. | |
UpdateAvatarUsingTrackingDevices | Updates the avatar using the current tracking data. | |
UpdateInputDevice | Updates the currently enabled input devices. | |
UpdateLocomotion | Updates the enabled locomotion components in the avatar. | |
UpdateTrackingDevices | Updates the tracking devices. |
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.) |
Remarks
UxrAvatarController components require the UxrAvatar component in the same GameObject or any of its parents. Only one UxrAvatarController component type can be active at the same time.