Namespace Microsoft.MixedReality.Toolkit.UI
Classes
AppBar
Logic for the App Bar. Generates buttons, manages states.
AppBarButton
Button class used by AppBar.
Billboard
The Billboard class implements the behaviors needed to keep a GameObject oriented towards the user.
BoundingBox
BoundingBoxHelper
The BoundingBoxHelper class contains functions for getting geometric info from the non-axis-aligned bounding box of a GameObject. These functions can be used to align another object to the center of a certain face or the center of an edge of a face... etc. The BoundingBoxHelper static function can be used for a one time calculation. The dynamic functions can be used to obtain boundingcube info on an object's Update loop. Operations are minimized in the dynamic use scenario.
ButtonBackgroundSize
The base layout component for a button or UI elements - easily build UI with Unity Primitives. Helps to create consistency by using values that scale to a designer's 2D layout program. Based on a ratio of 2048 pixels for 1 meter of surface area.
Use case: A designer creates a concept image of UI based on a 2048 artboard. 2048 pixels is a nice resolution for a meter of content, two meters away from the user. The FOV of the HoloLens is about 1 meter wide at 2 meters from the user meaning the designer can assume an image area of 2048 x 1184 pixels at 2 meters from the user. The designer or engineer can take pixel based redlines and create UI at 1:1 scale.
ButtonBackgroundSizeOffset
Scales an object relative the scale of the Anchor Transform Works best when using with Layout3DPixelSize, but not required - See LayoutPixelSize for more info Use Case: Create a button, then add another element who's size should maintain a consistent size relative to the Anchor. Like creating a button background using a Cube and ButtonSize. The add another Cube that is 40 pixels smaller than the background. Event if the background changes size, this element will remain 40 pixels smaller.
ButtonBorder
Use a Unity primitive cube or cylinder as a border segment relative to the scale of the AnchorTransform Use with ButtonSize on the component and the Anchor for consistent results Works best when using with ButtonSize, but not required - See ButtonSize for more info.
ButtonCollider
Scales the collider on one object relative to the transform's scale of another object
ButtonLayout
Place an object in space relative to another object's scale Good for responsive buttons that can stretch and object realign
ButtonSize
ButtonSizeOffset
Scales an object relative the scale of the AnchorTransform
CursorContextManipulationHandler
This script provides cursor context for the manipulation handler
CustomInteractablesReceiver
Example of building a custom receiver that can be loaded as part of the events on the Interactable or in InteractableReceiverList or InteractableReceiver
Extend ReceiverBaseMonoBehavior to build external event components
FollowMeToggle
GazeHandHelper
This class must be instantiated by a script that implements the IMixedRealitySourceStateHandler, IMixedRealityInputHandler and IMixedRealityInputHandler<T>.
It must receive EventData arguments from OnInputDown(), OnInputUp(), OnInputChanged() and OnSourceLost().
This class manages the states of input necessary to calculate a proper grab position The eventData received on inputdown has the point on the target that was hit by the gaze; the mixedrealitypose - eventdata received on input changed contains the handposition in eventdata.inputdata.position It also contains useful retrieval functions.
HandInteractionPanZoom
HandInteractionPanZoom.HandPanData
Internal data stored for each hand or pointer.
HandPanEventData
Information associated with a particular hand pan event.
InputRecordingControls
Utility class to make input recording service accessible through game objects. Hook up buttons to the public functions to start and stop recording input.
Interactable
Uses input and action data to declare a set of states Maintains a collection of themes that react to state changes and provide sensory feedback Passes state information and input data on to receivers that detect patterns and does stuff.
InteractableActivateTheme
InteractableAnimatorTheme
Uses Animator to control Interactable feedback based on state changes.
InteractableAudioReceiver
Add audio clip to play onClick or on Voice Command
InteractableAudioTheme
InteractableColorChildrenTheme
InteractableColorTheme
A color theme that can set colors on renderers or common text objects This theme will try to set color on text objects first, if none can be found, then we fall back to renderer color setting using the parent class.
InteractableCustomSetting
A simple property with name value and type, used for serialization The custom settings are used in themes to expose properties needed to enhance theme functionality
InteractableEvent
Event base class for events attached to Interactables.
InteractableGrabScaleTheme
InteractableHighlight
Adds or removes materials to target renderer for highlighting Focused GameObjects.
InteractableMaterialTheme
InteractableOffsetTheme
InteractableOnClickReceiver
A basic receiver for detecting clicks
InteractableOnFocus
Adds or removes materials to target renderer for highlighting Focused GameObjects.
InteractableOnFocusReceiver
A basic focus event receiver
InteractableOnGrabReceiver
A basic grab event receiver for detecting grab events (OnGrab, OnRelease) or grab state changes from Interactable When the grab states change, on or off, these events are triggered
InteractableOnHoldReceiver
Basic hold event receiver
InteractableOnPressReceiver
Basic press event receiver
InteractableOnToggleReceiver
a receiver that listens to toggle events
InteractableOnTouchReceiver
A basic touch event receiver for detecting Physical Touch state changes in the Interactable When the physical touch states change, these events are triggered.
InteractablePointerSimulator
A way to test button state feedback while in the editor
InteractableProfileItem
The foundation of profiles that exist on an Interactable Profiles pair themes with the objects they manipulate, based on state changes
InteractableReceiver
Example of building an event system for Interactable that still uses ReceiverBase events
InteractableReceiverInspector
InteractableReceiverList
An example of building an Interactable receiver that uses built-in receivers that extend ReceiverBase This is a mono behavior, place on a gameObject and assign the Interactable
InteractableReceiverListInspector
InteractableRotationTheme
InteractableScaleTheme
InteractableShaderTheme
InteractableStateModel
InteractableStates
list of Interactable states and basic comparison
InteractableStringTheme
Change string on a text object based on state
InteractableTextureTheme
InteractableThemeBase
Base class for themes
InteractableThemeProperty
Base class for themes
InteractableThemePropertyValue
Base values of a theme property, used for serialization
InteractableThemeShaderUtils
Collection of shader and material utilities
InteractableToggleCollection
A way to control a list of radial type buttons or tabs
InteractableType
A wrapper for a Type which gives a "friendly name" for the type (i.e. the class name) along with the assembly qualified name (which can be used to new instances of this type).
InteractableTypeFinder
A helper that uses reflection to find objects that implement base types of the Interactable types that populate the various state, theme, and event inspectors.
InteractableTypesContainer
A convenience class that holds arrays of class names, fully qualified assembly names and their corresponding actual types.
LoaderController
Controls how the standard indeterminate loader moves and behaves over time.
ManipulationEvent
A UnityEvent callback containing a ManipulationEventData payload.
ManipulationEventData
Information associated with a particular manipulation event.
ManipulationHandler
This script allows for an object to be movable, scalable, and rotatable with one or two hands. You may also configure the script on only enable certain manipulations. The script works with both HoloLens' gesture input and immersive headset's motion controller input.
PanUnityEvent
Unity event for a pan / zoom event. Contains the hand pan event data
PinchSlider
A slider that can be moved by grabbing / pinching a slider thumb
PressableButton
A button that can be pushed via direct touch. You can use PhysicalPressEventRouter to route these events to Interactable.
PressableButtonHoloLens2
HoloLens 2 shell's style button specific elements
ProgressIndicatorLoadingBar
Displays progress bar and (optionally) percentage text.
ProgressIndicatorObjectDisplay
This class manages how a gameobject rotates and/or scales when activated as part of a Progress Indicator effect.
ProgressIndicatorOrbsRotator
This class manages the 'rotating circle of dots' effect that is used as a Progress Indicator effect.
ReceiverBase
The base class for all receivers that attach to Interactables
ReceiverBaseMonoBehavior
A base class for detecting hand handling state changes from an Interactable Extend this class to build new events or receivers from Interactables
InteractableReceiver or InteractableReceiverList can be used with ReceiverBase - built-in receivers
ScaleOffsetColorTheme
SliderEvent
A UnityEvent callback containing a SliderEventData payload.
SliderEventData
SliderSounds
Component that plays sounds to communicate the state of a pinch slider
State
State data model, state management and comparison instructions
States
Theme
Theme scriptableObject for loading theme settings
ThemeEaseSettings
Ease settings and functionality for themes
ThemeTarget
A way to cache some serializes values to pass between buttons and handlers
ToggleHandVisualisation
ToolTip
Class for Tooltip object Creates a floating tooltip that is attached to an object and moves to stay in view as object rotates with respect to the view.
ToolTipBackgroundBlob
A background with 'fake' inertia Useful for soft or liquid objects
ToolTipBackgroundCorners
Renders meshes at the corners of a tool tip
ToolTipBackgroundMesh
Renders a background mesh for a tool tip using a mesh renderer If the mesh has an offset anchor point you will get odd results
ToolTipConnector
Connects a ToolTip to a target Maintains that connection even if the target moves
ToolTipLineHighlight
Renders an outline around tooltip background
ToolTipSpawner
Add to any Object to spawn ToolTips on tap or on focus, according to preference Applies its follow settings to the spawned ToolTip's ToolTipConnector component
ToolTipUtility
Static class providing useful functions for finding ToolTip Attach point information.
TouchEvent
A UnityEvent callback containing a TouchEventData payload.
TransformScaleHandler
Component for setting the min/max scale values for ManipulationHandler or BoundingBox
VisualProfile
Profile container for theme and for loading theme settings
Structs
InteractableColorChildrenTheme.BlocksAndRenderer
InteractableEvent.ReceiverData
InteractableThemePropertySettings
The main settings found in Themes
ProfileSettings
list of theme settings to virtualize theme values
ShaderInfo
collection of properties found in a shader
ShaderProperties
property format for each property
ThemeSettings
List of settings that are copied from themes
Interfaces
IInteractableHandler
IProgressIndicator
IToolTipBackground
IToolTipHighlight
Enums
AppBar.AppBarDisplayTypeEnum
AppBar.AppBarStateEnum
AppBar.ButtonTypeEnum
BoundingBox.BoundingBoxActivationType
This enum defines how the BoundingBox gets activated
BoundingBox.BoundsCalculationMethod
This enum defines what volume type the bound calculation depends on and its priority for it.
BoundingBox.FlattenModeType
Enum which describes how an object's boundingbox is to be flattened.
BoundingBox.HandleType
Enum which describes whether a boundingbox handle which has been grabbed, is a Rotation Handle (sphere) or a Scale Handle( cube)
BoundingBox.RotationHandlePrefabCollider
This enum defines the type of collider in use when a rotation handle prefab is provided.
BoundingBox.WireframeType
This enum describes which primitive type the wireframe portion of the boundingbox consists of.
ConnectorFollowType
How does the Tooltip track with its parent object
ConnectorOrientType
How does the Tooltip rotate about the connector
ConnectorPivotDirection
In which direction does the tooltip connector project.
ConnectorPivotMode
Controls how the tooltip will pivot relative to the camera/other objects.
DisplayMode
Enum describing the display mode of a ToolTip.
InteractableHighlight.HighlightedMaterialStyle
InteractableOnPressReceiver.InteractionType
InteractableStates.InteractableStateEnum
InteractableThemePropertyValueTypes
Theme property value types used for converting theme values back and forth from serialized objects
ManipulationHandler.HandMovementType
ManipulationHandler.ReleaseBehaviorType
ManipulationHandler.RotateInOneHandType
ManipulationHandler.TwoHandedManipulation
PressableButton.SpaceMode
Enum for defining space of plane distances.
ProgressIndicatorState
ReceiverBaseMonoBehavior.SearchScopes
SelectionModes
Values for user-friendly dimensions settings
ShaderPropertyType
ThemeEaseSettings.BasicEaseCurves
ToolTipAttachPoint
Used to find a pivot point that is closest to the anchor. This ensures a natural-looking attachment where the connector line meets the label.
ToolTipSpawner.RemainType
TypeRestriction
Controls the behavior of the InteractableTypeFinder.FindTypes function. See individual enum values for more details.