UxrButton3D Class

Base class to simplify interacting with 3D button objects by programming 2D UI elements. A 2D Unity UI Canvas is placed on top of the 3D buttons. The Canvas will contain invisible UxrControlInput UI components by using UxrNonDrawingGraphic instead of images. The UxrControlInput components will get the user input and through child implementations of UxrButton3D the 3D objects will be “pushed”, “rotated” creating 3D behaviour using 2D logic.

Inheritance Hierarchy

System.Object
  Object
    Component
      Behaviour
        MonoBehaviour
          UltimateXR.Core.Components.UxrComponent
            UltimateXR.Core.Components.UxrComponent(UxrButton3D)
              UltimateXR.Core.Components.UxrComponent(Canvas, UxrButton3D)
                UltimateXR.UI.UnityInputModule.Utils.UxrButton3D
                  UltimateXR.UI.UnityInputModule.Utils.UxrButton3DPress
                  UltimateXR.UI.UnityInputModule.Utils.UxrButton3DRotate
Namespace: UltimateXR.UI.UnityInputModule.Utils
Assembly: UltimateXR (in UltimateXR.dll) Version: 0.0.0.0

Syntax

C#

[RequireComponent(typeof(UxrControlInput))]
public class UxrButton3D : UxrComponent<Canvas, UxrButton3D>


The UxrButton3D type exposes the following members.

Constructors

NameDescription
Public methodUxrButton3D

Properties

NameDescription
Public propertyControlInput Gets the UI input component.
Public propertyInitialTargetLocalPosition Gets Target’s local position during Awake().
Public propertyInitialTargetLocalRotation Gets Target’s local rotation during Awake().
Public propertyInitialTargetPosition Gets Target’s world position during Awake().
Public propertyInitialTargetRotation Gets Target’s world rotation during Awake().
Public propertyTarget Gets the Transform of the 3D object that is going to move, rotate, scale…

Methods

NameDescription
Protected methodAwake Initializes the component. (Overrides UxrComponent<TP, TC>.Awake().)
Protected methodOnDisable Unsubscribes from the input control events. (Overrides UxrComponent<T>.OnDisable().)
Protected methodOnEnable Subscribes to the input control events. (Overrides UxrComponent<T>.OnEnable().)
Protected methodOnKeyPressed Event trigger for the key pressed event. It can be overridden in child classes to handle key presses without subscribing to events.
Protected methodOnKeyReleased Event trigger for the key released event. It can be overridden in child classes to handle key releases without subscribing to events.

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.UI.UnityInputModule.Utils Namespace