Mixed Reality Toolkit for Unity (MRTK3)

repository·main·Indexed 19 days ago

https://github.com/mixedrealitytoolkit/mixedrealitytoolkit-unity

An open-source, modular framework built on Unity's XR Interaction Toolkit and OpenXR to accelerate cross-platform mixed reality development. It includes packages for accessibility, audio spatialization, core definitions, experimental data binding and theming, diagnostics, extended assets, specialized input (including hand-joint aggregation and simulation), spatial manipulation (ObjectManipulator, BoundsControl), and standard assets.

Tokens
26.2K
Snippets
18
Records
133
Agent score
68%

What's inside MRTK3

  1. Overview of MRTK UX Components

    main
    The org.mixedrealitytoolkit.uxcomponents package is a UX library designed for building 3D user interfaces in mixed reality. It leverages Unity's RectTransform and Canvas systems to provide dynamic layouts and presentation capabilities. The library includes a collection of prefabs, visuals, and interactive controls specifically optimized for mixed reality environments.
  2. Overview of MRTK Input package

    main

    The org.mixedrealitytoolkit.input package extends the Unity XR Interaction Toolkit (XRI) to provide specialized mixed reality capabilities. It is designed to work seamlessly with the Unity Input System and provides the following core features:

    • Custom Interactors and Controllers: Specialized tools for interacting with objects in mixed reality environments.
    • Hand-Joint Aggregation: Logic to group and manage hand joint data for more natural interaction.
    • Simulation Subsystems: Tools to simulate input (such as hand tracking or controllers) within the Unity Editor for faster development and testing.
  3. Overview of MRTK Accessibility

    main

    MRTK Accessibility provides features and subsystems designed to enable accessibility within Mixed Reality (MR) experiences. It allows developers to implement inclusive design patterns to ensure MR content is usable by individuals with diverse needs.

    IMPORTANT

    This package is currently in early preview. Expect significant, breaking changes before its official release.

  4. Use MRTK UX Components (Non-Canvas) for 3D UI

    main
    The org.mixedrealitytoolkit.uxcomponents.noncanvas package provides a library of UX components designed specifically for 3D user interfaces that do not rely on Unity's Canvas layout system. Using non-Canvas UI components can offer improved performance in certain mixed reality scenarios compared to traditional Canvas-based UI.
  5. Use MRTK Spatial Manipulation features

    main

    The org.mixedrealitytoolkit.spatialmanipulation package provides the core tools for interacting with objects in 3D space. It includes components for direct manipulation, visual feedback for object boundaries, and systems for controlling how objects move and rotate through Solvers and Constraints.

    Key components include:

    • ObjectManipulator: The primary component for enabling users to grab, move, rotate, and scale objects.
    • BoundsControl: Provides visual handles and controls for manipulating an object's boundaries (e.g., resizing).
    • Solvers/Constraints systems: Advanced systems used to refine movement, such as snapping to grids, following paths, or restricting movement to specific axes.
  6. Use MRTK UX Core Scripts for building UX libraries

    main

    The org.mixedrealitytoolkit.uxcore package provides the fundamental interaction and visualization scripts required to build Mixed Reality (MR) UI components.

    When to use this package:

    • Use this package if you are a developer building your own custom UX library or specialized UI components from the ground up.
    • Do not use this package if you simply want a ready-to-use library of components; instead, use the UX Components package which contains a pre-existing library of components built upon these core scripts.
  7. Use MRTK Standard Assets for common fonts, materials, and models

    main

    The org.mixedrealitytoolkit.standardassets package provides common assets used across various MRTK packages. This includes standard fonts, materials, and 3D models.

    Requirement: This package relies on the Graphics Tools collection of shaders to function correctly. Ensure that the Graphics Tools package is installed in your project to avoid rendering issues with these assets.

  8. Manage lists with Data Consumer Collection and Item Placer

    main

    To display a list of repeating visual elements (like a contact list or product catalog), use the following components:

    • Data Consumer Collection: A specialized consumer that manages a collection of items. It can handle nested lists (e.g., a list of photos within a list of people).
    • Data Collection Item Placer: The logic component assigned to a Data Consumer Collection. It is responsible for:
      1. Requesting list items.
      2. Accepting populated prefabs.
      3. Presenting them to the user (e.g., by inserting them into a UX layout component).

    This system supports prefab pooling and virtualization, meaning only visible items are actively managed, which is essential for large datasets.