Microsoft.MixedReality.Toolkit Namespace

Classes

AnimationCurveExtensions

Extension methods for Unity's AnimationCurve class

ArrayExtensions

Array type method extensions.

AssemblyExtensions
BaseCoreSystem
BaseDataProvider
BaseDataProvider<T>

The base data provider implements IMixedRealityDataProvider and provides default properties for all data providers.

BaseDataProviderAccessCoreSystem

Abstract class for core MRTK system with functionality defined for managing and accessing IMixedRealityDataProviders

BaseEventSystem

Base Event System that can be inherited from to give other system features event capabilities.

BaseExtensionService

The base extension service implements IMixedRealityExtensionService and provides default properties for all extension services.

BaseMixedRealityProfile

Base abstract class for all Mixed Reality profile configurations. Extends ScriptableObject and used as a property container to initialize MRTK services.

BaseMRTKProfile

Base abstract class for all profiles.

BaseService

The base service implements IMixedRealityService and provides default properties for all services.

BaseSubsystemConfig

The base class that all subsystem configuration data inherits from.

BeginReadOnlyGroupAttribute
BoundsExtensions

Extensions for Unity's Bounds struct.

CameraCache

The purpose of this class is to provide a cached reference to the main camera. Calling Camera.main executes a FindByTag on the scene, which will get worse and worse with more tagged objects.

CameraExtensions

Extension methods for the Unity's Camera class

CameraFOVChecker

Camera extension methods to test if colliders are within camera's FOV. Uses caching to improve performance and ensure values are only computed once per frame

CameraSettings
CameraSettingsManager

Class that applies the appropriate camera settings based on the display type.

CanvasExtensions

Extensions for the Canvas class.

ClassDataBindingProfile

This profile typically will become part of a scriptable object to provide a series of mappings between UX elements and the data and theme keypaths and data sources that will service them, for a specific C# class that implements the IDataConsumerConfiguration interface.

Note that only the class name is required. The bindings can essentially be anything that that specific class knows how to consume. The majority of DataConsumer classes can be serviced by this implementation of a binding profile.

CollectionsExtensions

Extension methods for .Net Collection objects, e.g. Lists, Dictionaries, Arrays

Color32Extensions

Extension methods for Unity's Color32 struct

ColorUtilities
ComparerExtensions

Extension methods for .Net Comparer's

ComponentExtensions

Extensions methods for the Unity Component class. This also includes some component-related extensions for the GameObject class.

ControllerLookup

A basic convenience registry allowing easy reference to controllers.

CoreServices

Utility class to easily access references to core runtime Mixed Reality Toolkit Services If deallocating and re-allocating a new system at runtime, ResetCacheReferences() should be used to get a proper reference

DataBindingProfile

This profile can be used to configure data and theme binding settings for a themable element of the UX. It makes the connection between a data source, a theme source and the UX elements that should be affected.

DateTimeExtensions

DateTime Extensions.

DocLinkAttribute

Defines a documentation link for a service. Used primarily by service inspector facades.

DoubleExtensions

Extension methods for the .Net Double struct

DrawIfAttribute

Conditionally draws a property or field.

DrawIfPropertyDrawer

Conditionally draws a property based on the value associated with the DrawIfAttribute attribute.

EditableTimedFlagAttribute

Attribute to enable an inspector checkbox for toggling the state at edit-time. Mostly used for Toggle state.

EndReadOnlyGroupAttribute
EnumerableExtensions

Extension methods to simplify working with IEnumerable collections.

EnumFlagsAttribute

An attribute that allows a particular field to be rendered as multi-selectable set of flags.

EventSystemExtensions

Extension methods for Unity's EventSystem

ExperimentalAttribute

A PropertyAttribute for showing a warning box that the tagged implementation is experimental.

ExtendsAttribute

Constraint that allows selection of classes that extend a specific class when selecting a Utilities.SystemType with the Unity inspector.

FloatExtensions

Extension methods for the .Net Float struct

GameObjectExtensions

Extension methods for Unity's GameObject class

GenericBaseEventData

Generic Base Event Data for Sending Events through the Event System.

HandBounds

Utility behavior to access the axis aligned bounds of an articulated hand (or the proxy visualizer of a motion controller).

HandednessExtensions

Extension methods that make working with the Handedness enum easier.

HandsUtils

Collection of utility methods to simplify working with the Hands subsystem(s).

HelpAttribute

A PropertyAttribute for showing a collapsible Help section.

ImplementsAttribute

Constraint that allows selection of classes that implement a specific interface when selecting a Utilities.SystemType with the Unity inspector.

InterfaceExtensions

Extension methods for working with interfaces.

InterfaceSelectorAttribute

This attaches a Unity Inspector drawer that will enable selection and instantiation of concrete classes that are assignable to this field. This pairs best with an interface and the [SerializedReference] attribute, though technically any parent class type will work!

LabelWidthAttribute
LayerExtensions

Extension methods for Unity's LayerMask struct

MathExtensions

Extension methods and helper functions for various math data

MathUtilities

Math Utilities class.

MixedRealityCameraProfile

This Scriptable Object tells you if your head mounted display (HMD) is a transparent device or an occluded device. Based on those values, you can customize your camera and quality settings.

MixedRealityDataProviderAttribute

Attribute that defines the properties of a Mixed Reality Toolkit data provider.

MixedRealityExperienceSettingsProfile

Experience settings profile for the Mixed Reality Toolkit.

MixedRealityExtensionServiceAttribute

Attribute that defines the properties of a Mixed Reality Toolkit extension service.

MixedRealityPlayspace

A static class encapsulating the Mixed Reality playspace.

MixedRealityRaycaster

Custom raycaster that enables features such as stepwise raycasts.

MixedRealityRegisteredServiceProvidersProfile
MixedRealitySceneContent

Use this script on GameObjects you wish to be aligned in certain ways depending on the application space type. For example, if you want to place an object at the height of the user's head in a room scale application, check alignWithHeadHeight. In a stationary scale application, this is equivalent to placing the object at a height of 0. You can also specify specific locations to place the object based on space type.

This script runs once, on GameObject creation.

MixedRealityServiceInspectorAttribute

Attach to a class implementing IMixedRealityServiceInspector to generate a facade inspector.

MixedRealityServiceProfileAttribute

Attribute that defines which service a profile is meant to be consumed by. Only applies to profiles that are consumed by types implementing IMixedRealityService. A service must implement all required types and no excluded types to be considered compatible with the profile.

MixedRealityServiceRegistry

Static class that represents the Mixed Reality Toolkit service registry.

MixedRealityToolkit

This class is responsible for coordinating the operation of the Mixed Reality Toolkit. It is the only Singleton in the entire project. It provides a service registry for all active services that are used within a project as well as providing the active configuration profile for the project. The Profile can be swapped out at any time to meet the needs of your project.

MixedRealityToolkitConfigurationProfile

Configuration profile settings for the Mixed Reality Toolkit.

MRTKBaseInteractable

Extended version of XRBaseInteractable to enable multi-hand interactions.

MRTKProfile

A build-target-specific profile that determines which subsystems are launched, and which configurations are bound to them.

PhysicalPressEventRouter

This class exists to route PressableButton events through to Interactable. The result is being able to have physical touch call Interactable.OnPointerClicked.

PhysicsLayerAttribute

Attribute used to make an Int32 field render a dropdown generated from the current layers defined in the Tag Manager.

PlacementEventData

Describes placement of objects events.

PlayspaceUtilities

Utilities for retrieving the XR rig's offset transform, for use in transforming tracked object coordinates.

PrefabAttribute

Attribute used to ensure that a GameObject inspector slot only accepts prefabs.

ProcessExtensions

Process Extension class.

QuaternionExtensions

Extension methods for Unity's Quaternion struct.

RayExtensions

Extension methods for Unity's Ray struct

ReadOnlyAttribute
SceneAssetReferenceAttribute

Attribute for using a SceneAssetReference property drawer.

SceneAssetReferenceAttributeDrawer

Draws an object field as a scene asset reference. This enables fields to store references to scene assets (which is an editor-only object) as unity objects (which work in both editor and runtime)

ScenePickAttribute

Attribute to mark up an int field to be drawn using the ScenePickPropertyDrawer This allows the UI to display a dropdown instead of a numeric entry field.

SerializableDictionary<TKey,TValue>

Generic Dictionary helper class that handles serialization of keys and values into lists before/after serialization time since Dictionary by itself is not Serializable. Extends C# Dictionary class to support typical API access methods

Smoothing

Provides several utility functions for smoothing and lerping.

SpeechKeywordAttribute

Attribute used to display a dropdown of registered keywords from the speech profile.

StabilizedRay

A ray whose position and direction are stabilized in a way similar to how gaze stabilization works in HoloLens.

StatefulInteractable
StatefulTimerEvent
StringBuilderExtensions

StringBuilder Extensions.

StringExtensions

String Extensions.

SubmitEventRouter

This is a helper class to allow you to call OnSubmit() on a UnityEngine.UI.Button or other control derived from UnityEngine.EventSystems.ISubmitHandler on this gameObject. It exposes a public function that can be bound in the Editor to a Unity Event.

SystemInterfaceType

Reference to a Type, that may or may not be instantiable. Similar to SystemType, but without the concrete/non-interface-type constraints.

SystemNumericsExtensions
SystemType

Reference to a class Type with support for Unity serialization.

SystemTypeAttribute

Base class for class selection constraints that can be applied when selecting a Utilities.SystemType with the Unity inspector.

TagPropertyAttribute

A PropertyAttribute for Unity tags (a string field).

Texture2DExtensions

A collection of helper functions for Texture2D

TimedFlag
TransformExtensions

Extension methods for Unity's Transform class

TransformFlagsExtensions

Extension methods specific to the TransformFlags enum.

TypeExtensions
UnityObjectExtensions

Extension methods for Unity's Object class

UXBindingProfileTemplate

This profile combines binding profiles for all Data Consumers used in the MRTK UXComponents components and is used by the BindingConfigurator that can be dropped on any prefab (or gameobject hierarchy) to automatically configure all Data Consumers that will be needed to make those game objects data bindable and themable.

Vector3RangeAttribute

Attribute used to make a float or int variable in a script be restricted to a specific range.

VectorExtensions

Extension methods for Unity's Vector struct

XRNodeExtensions

Methods which extend the functionality of the Unity XRNode struct.

XRSubsystemHelpers

A helper class to provide easier access to XR subsystems.

Structs

BaseEventSystem.EventHandlerEntry
DataBindingProfile.ValueToKeypath

A mapping from a datum to a keypath. The datum can be a numeric value that is provided as a string, and it will properly map to a numeric value from the actual data source.

HandJointPose
IPokeInteractor.PokePath
MixedRealityServiceConfiguration

Defines a system, feature, or manager to be registered with as a IMixedRealityExtensionService on startup.

MixedRealityTransform
RayStep

Interfaces

IClassDataBindingProfile

This interface is used to enable components outside of the Data Binding package to specify bindings for specific implementations of DataConsumers, and then call the ConfigureFromBindingProfile method on any object, typically a DataConsumer, that implements the IDataBindingConfigurator interface, to establish a series of one or more bindings.

IDataBindable

An interface for binding a class according to a DataBindingProfile. This interface is implemented by any data consumer that also supports binding and theming and wishes to be bindable from a common profile with other data consumers.

IDataBindingConfigurator

Configures one or more data consumers on a gameobject according to the provided profile. This can bind for both theming and data.

IGazeInteractor

An interface that all gaze-like interactors implement. Interactors that implement this interface are expected to use the UnityEngine.XR.Interaction.Toolkit.IXRInteractor attachTransform to specify the impact point of the gaze ray on the interactable.

IGazePinchInteractor

An interface that all gaze-pinch-like interactors must implement.

IGrabInteractor

An interface that all grab-like interactors implement. Interactors that implement this interface are expected to use the UnityEngine.XR.Interaction.Toolkit.IXRInteractor attachTransform to specify the point at which the grab occurs.

IHandedInteractor

An interface that all interactors with the concept of handedness implement.

IMixedRealityCapabilityCheck
IMixedRealityDataProvider

Required interface for all Mixed Reality data providers. Data providers are the components that supply services with required information (ex: input controller state).

IMixedRealityDataProviderAccess

Allows systems to provide access to their managed data providers.

IMixedRealityEventHandler

Interface to implement generic events.

IMixedRealityEventSource

Interface to implement an event source.

IMixedRealityEventSystem

Interface used to implement an Event System that is compatible with the Mixed Reality Toolkit.

IMixedRealityExtensionService

Generic interface for all optional Mixed Reality systems, components, or features that can be added to the MixedRealityServiceConfiguration

IMixedRealityService

Generic interface for all Mixed Reality Services

IMixedRealityServiceConfiguration

Defines configuration data for to be registered for a IMixedRealityService on startup. Generally, used for configuring the extended interface, IMixedRealityDataProvider

IMixedRealityServiceRegistrar

Interface for Mixed Reality Toolkit service registration.

IMixedRealityServiceState

Interface providing properties that components can call to determine the current state of a mixed reality service.

IPokeInteractor

An interface that all poke-like interactors implement. Interactors that implement this interface are expected to use the UnityEngine.XR.Interaction.Toolkit.IXRInteractor attachTransform to specify the point at which the poke occurs; typically, this would be the tip of the index finger for an articulated hand, or a pre-determined poking point on a motion controller rig.

IProxyInteractor

The abstract interaction events that all proxy interactors support. Proxy interactors are used to map foreign interaction systems (like UnityUI) onto XRI interaction primitives. Generally, input shims will call these functions to request the proxy to hover/select/etc the object on which the shim is placed.

IRayInteractor

An interface that all far-ray-like interactors implement. Interactors that implement this interface are expected to use the UnityEngine.XR.Interaction.Toolkit.IXRInteractor attachTransform to specify the impact point of the ray on the interactable.

ISnapInteractable

Interactables that represent a handle-like affordance should implement this interface, such that interactors can snap their visuals/ray/etc directly to the affordance instead of using the typical local offset.

ISpeechInteractor

An interface that all speech-driven interactors implement.

IVariableSelectInteractor

An interface that all interactors which offer variable selection must implement.

Enums

Axis

Used to specify a 3D axis.

AxisFlags

Flags used to specify a set of one or more 3D axes.

BoundsExtensions.Axis
DataRetrievalMethod

The method of retrieving the final value of the correct type for a data/theme binding to a UX element.

There may be both variable data and theme data:

  1. Retrieve data value at dataKeyPath from data-centric data source.
  2. Optionally transform this value into a form that can be used to retrieve the final themed value.
  3. Use this new value to then retrieve the final themed value.

An example:

  1. A numeric value called "SystemInfo.Status" exists in the database and available from a data source.
  2. The numeric value can be used to lookup a theme keypath: 0 => Icons.Queued 1 => Icons.Started 2 => Icons.Cancelled 3 => Icons.Completed
  3. This new value "Icons.Queued" is then used to retrieve the correct Sprite from the theme data source.
DisplayType

Describes the type of display provided by the device.

DistortionMode

How to apply the distortion along the line.

DrawIfAttribute.ComparisonType

Types of comperisons.

Handedness

Defines in which hand a controller is currently being used.

InterpolationMode

Default options for how to distribute interpolated points in a line renderer

InterpolationType

Defines the type of interpolation to use when calculating a spline.

LinePointTransformMode

Defines how a base line data provider will transform its points

LineRotationMode

Defines how to calculate the line's rotation at any given point.

MixedRealityCapability

Mixed reality platform capabilities.

PhysicalPressEventRouter.PhysicalPressEventBehavior
PointDistributionMode

Defines how to get an interpolated point along a line

SDKType

The SDKType lists the XR SDKs that are supported by the Mixed Reality Toolkit. Initially, this lists proposed SDKs, not all may be implemented at this time (please see ReleaseNotes for more details)

StatefulInteractable.ToggleType

Toggle modes for interactables.

StepMode

Defines how to generate points in a line renderer

TrackedHandJoint

The supported tracked hand joints.

TrackingState

The Tracking State defines how a device is currently being tracked. This enables developers to be able to handle non-tracked situations and react accordingly.

TransformFlags

Flags used to represent a combination of different types of transformation

TypeGrouping

Indicates how selectable classes should be collated in drop-down menu.