Guía de configuración de perfiles de MRTKMRTK profile configuration guide

El Mixed Reality Toolkit centraliza la mayor parte de la configuración necesaria para administrar el kit de herramientas lo más posible (excepto para las verdaderas "cosas" en tiempo de ejecución).The Mixed Reality Toolkit centralizes as much of the configuration required to manage the toolkit as possible (except for true runtime "things").

Esta guía es un tutorial sencillo para cada una de las pantallas de perfil de configuración disponibles actualmente para el kit de herramientas.This guide is a simple walkthrough for each of the configuration profile screens currently available for the toolkit.

El perfil de configuración Mixed Reality Toolkit principalThe main Mixed Reality Toolkit configuration profile

El perfil de configuración principal, que está asociado a MixedRealityToolkit GameObject en la escena, proporciona el punto de entrada principal para la Toolkit en el proyecto.The main configuration profile, which is attached to the MixedRealityToolkit GameObject in your Scene, provides the main entry point for the Toolkit in your project.

Nota

El Mixed Reality Toolkit "bloquea" las pantallas de configuración predeterminadas para asegurarse de que siempre tiene un punto de inicio común para el proyecto y se recomienda empezar a definir su propia configuración a medida que evoluciona el proyecto.The Mixed Reality Toolkit "locks" the default configuration screens to ensure you always have a common start point for your project and it is encouraged to start defining your own settings as your project evolves. La configuración de MRTK no se puede editar durante el modo de reproducción.The MRTK configuration is not editable during play-mode.

Perfil de configuración de MRTK

Todos los perfiles "predeterminados" de la Mixed Reality Toolkit pueden encontrarse en el proyecto del SDK en la carpeta Assets/MRTK/SDK/Profiles.All the "default" profiles for the Mixed Reality Toolkit can be found in the SDK project in the folder Assets/MRTK/SDK/Profiles.

Importante

DefaultHoloLens2ConfigurationProfile está optimizado para HoloLens 2.DefaultHoloLens2ConfigurationProfile is optimized for HoloLens 2. Consulte Perfiles para obtener más información.See Profiles for the details.

Al abrir el perfil Mixed Reality Toolkit configuración principal, verá la siguiente pantalla en el inspector:When you open the main Mixed Reality Toolkit Configuration Profile, you will see the following screen in the inspector:

MRTK configuration scene

Si selecciona un recurso MixedRealityToolkitConfigurationProfile sin MixedRealityToolkit en la escena, se le preguntará si desea que MRTK configure automáticamente la escena.If you select a MixedRealityToolkitConfigurationProfile asset without the MixedRealityToolkit in the scene, it will ask you if you want the MRTK to automatically setup the scene for you. Sin embargo, esto es opcional, debe haber un objeto MixedRealityToolkit activo en la escena para acceder a todas las pantallas de configuración.This is optional, however, there must be an active MixedRealityToolkit object in the scene to access all the configuration screens.

Esto aloja la configuración actual del entorno de ejecución activo para el proyecto.This houses the current active runtime configuration for the project.

Desde aquí puede navegar a todos los perfiles de configuración de MRTK, incluidos:From here you can navigate to all the configuration profiles for the MRTK, including:

Estos perfiles de configuración se detallan a continuación en sus secciones pertinentes:These configuration profiles are detailed below in their relevant sections:


Configuración de la experienciaExperience settings

Ubicado en la página Mixed Reality Toolkit configuración principal, esta configuración define la operación predeterminada de la escala de Mixed Reality de entorno para el proyecto.Located on the main Mixed Reality Toolkit configuration page, this setting defines the default operation of the Mixed Reality environment scale for your project.

Experiance settings

Configuración de la cámaraCamera settings

La configuración de la cámara define cómo se configurará la cámara para el proyecto de Mixed Reality, definiendo la configuración genérica de recorte, calidad y transparencia.The camera settings define how the camera will be setup for your Mixed Reality project, defining the generic clipping, quality and transparency settings.

Camera Profile

Configuración del sistema de entradaInput system settings

El Mixed Reality Project proporciona un sistema de entrada sólido y bien entrenado para enrutar todos los eventos de entrada alrededor del proyecto que está seleccionado de forma predeterminada.The Mixed Reality Project provides a robust and well-trained input system for routing all the input events around the project which is selected by default.

Input System settings 1

Detrás del sistema de entrada proporcionado por MRTK hay otros sistemas, que ayudan a impulsar y administrar las complejas intercalaciones necesarias para abstraer las complejidades de un marco de trabajo de realidad mixta o multiplataforma.Behind the Input System provided by the MRTK are several other systems, these help to drive and manage the complex inter-weavings required to abstract out the complexities of a multi-platform / mixed reality framework.

Input System settings 2

Cada uno de los perfiles individuales se detalla a continuación:Each of the individual profiles are detailed below:


Configuración de visualización de límitesBoundary visualization settings

El sistema de límites traduce el límite percibido notificado por el sistema de protección o límite de las plataformas subyacentes.The boundary system translates the perceived boundary reported by the underlying platforms boundary / guardian system. La configuración del visualizador de límites le ofrece la capacidad de mostrar automáticamente el límite registrado dentro de la escena con respecto a la posición del usuario. El límite también reaccionará o actualizará en función de dónde se teleporte el usuario dentro de la escena.The Boundary visualizer configuration gives you the ability to automatically show the recorded boundary within your scene relative to the user's position.The boundary will also react / update based on where the user teleports within the scene.

Boundry Visualization Settings

Selección del sistema de teleportaciónTeleportation system selection

El Mixed Reality Project proporciona un sistema de teleportación completo para administrar eventos de teleportación en el proyecto que está seleccionado de forma predeterminada.The Mixed Reality Project provides a full featured Teleportation system for managing teleportation events in the project which is selected by default.

Teleport System settings

Configuración de reconocimiento espacialSpatial awareness settings

El Mixed Reality Project proporciona un sistema de reconocimiento espacial creado para trabajar con sistemas de análisis espacial en el proyecto que está seleccionado de forma predeterminada.The Mixed Reality Project provides a rebuilt spatial awareness system for working with spatial scanning systems in the project which is selected by default.

Spatial Awareness settings 1

La Mixed Reality Toolkit de reconocimiento espacial permite adaptar cómo se inicia el sistema, ya sea automáticamente cuando se inicia la aplicación o posterior mediante programación, así como establecer las extensiones para el campo de vista.The Mixed Reality Toolkit spatial awareness configuration lets you tailor how the system starts, whether it is automatically when the application starts or later programmatically as well as setting the extents for the field of view.

También le permite configurar la malla y la superficie, personalizando aún más cómo el proyecto entiende el entorno que le rodea.It also lets you configure the mesh and surface settings, further customizing how your project understands the environment around you.

Esto solo es aplicable a los dispositivos que pueden proporcionar un entorno analizado.This is only applicable for devices that can provide a scanned environment.

Spatial Awareness settings 2

Configuración de diagnósticoDiagnostics settings

Una característica opcional pero muy útil de MRTK es la funcionalidad de diagnóstico del complemento.An optional but highly useful feature of the MRTK is the plugin diagnostics functionality.

Diagnostics settings

El perfil de diagnóstico proporciona varios sistemas sencillos para supervisar mientras se ejecuta el proyecto, incluido un práctico conmutador de encendido y apagado para habilitar o deshabilitar el panel de visualización en la escena.The diagnostics profile provides several simple systems to monitor whilst the project is running, including a handy On/Off switch to enable / disable the display panel in the scene.

Diagnostics settings System settings 2

Configuración del sistema de escenaScene system settings

MRTK proporciona este servicio opcional para ayudarle a administrar la carga y descarga complejas de la escena aditiva.The MRTK provides this optional service to help you manage complex additive scene loading / unloading. Para decidir si scene system sería una buena opción para el proyecto, lea scene system Tareas iniciales Guide (Guía de configuración del sistema de escena).To decide if the Scene System would be a good fit for your project, read the Scene System Getting Started Guide.

Scene System settings 1

Configuración de servicios adicionalesAdditional services settings

Una de las áreas más avanzadas de la Mixed Reality Toolkit es su implementación del patrón de localizador de servicios, que permite el registro de cualquier "servicio" con el marco.One of the more advanced areas of the Mixed Reality Toolkit is its service locator pattern implementation which allows the registering of any "Service" with the framework. Esto permite ampliar el marco con nuevas características o sistemas fácilmente, pero también permite que los proyectos aprovechen estas funcionalidades para registrar sus propios componentes en tiempo de ejecución.This allows the framework to be both extended with new features / systems easily but also allows for projects to take advantage of these capabilities to register their own runtime components.

Cualquier servicio registrado sigue aprovechando al máximo todos los eventos de Unity, sin la sobrecarga y el costo de implementar patrones monobehaviour o singleton desordenados.Any registered service still gets the full advantage of all of the Unity events, without the overhead and cost of implementing a MonoBehaviour or clunky singleton patterns. Esto permite componentes de C# puros sin sobrecarga de escena para ejecutar procesos en primer plano y en segundo plano, por ejemplo, sistemas de generación, lógica de juego en tiempo de ejecución o prácticamente cualquier otra cosa.This allows for pure C# components with no scene overhead for running both foreground and background processes, e.g. spawning systems, runtime game logic, or practically anything else.

additional System settings

Configuración de acciones de entradaInput actions settings

Las acciones de entrada proporcionan una manera de abstraer las interacciones físicas y las entradas de un proyecto en tiempo de ejecución.Input actions provide a way to abstract any physical interactions and input from a runtime project. Toda la entrada física (de controladores, manos, mouse, etc.) se traduce en una acción de entrada lógica para su uso en el proyecto en tiempo de ejecución.All physical input (from controllers / hands / mouse / etc) is translated in to a logical input action for use in your runtime project. Esto garantiza que, independientemente de dónde procede la entrada, el proyecto simplemente implementa estas acciones como "Cosas que hacer" o "Interactuar con" en las escenas.This ensures no matter where the input comes from, your project simply implements these actions as "Things to do" or "Interact with" in your scenes.

Para crear una nueva acción de entrada, simplemente haga clic en el botón "Agregar una nueva acción" y escriba un nombre de texto descriptivo para lo que representa.To create a new input action, simply click the "Add a new Action" button and enter a friendly text name for what it represents. A continuación, solo necesita seleccionar un eje (el tipo de datos) que la acción está pensada para transmitir, o en el caso de los controladores físicos, el tipo de entrada física al que se puede adjuntar, por ejemplo:You then only need select an axis (the type of data) the action is meant to convey, or in the case of physical controllers, the physical input type it can be attached to, for example:

Restricción de ejeAxis Constraint Tipo de datosData Type DescripciónDescription Ejemplo de usoExample use
NingunoNone Sin datosNo data Se usa para una acción o un evento vacíosUsed for an empty action or event Desencadenador de eventosEvent Trigger
Sin procesar (reservado)Raw (reserved) objectobject Reservado para uso futuroReserved for future use N/DN/A
DigitalDigital boolbool Datos de tipo booleanos on o offA boolean on or off type data Un botón de controladorA controller button
Eje únicoSingle Axis FLOATfloat Un valor de datos de precisión únicaA single precision data value Una entrada de intervalo, por ejemplo, un desencadenadorA ranged input, e.g. a trigger
Eje dualDual Axis Vector2Vector2 Una fecha de tipo float dual para varios ejesA dual float type date for multiple axis Un Dpad o thumbstickA Dpad or Thumbstick
Posición de tres dofThree Dof Position Vector3Vector3 Datos de tipo posicional de con 3 ejes flotantesPositional type data from with 3 float axis Controlador solo de estilo de posición 3D3D position style only controller
Rotación de tres dofThree Dof Rotation QuaternionQuaternion Entrada de solo rotación con 4 ejes flotantesRotational only input with 4 float axis Un controlador de estilo de tres grados, por ejemplo, el controlador Oculus GoA Three degrees style controller, e.g. Oculus Go controller
Seis dofSix Dof Mixed Reality Pose (Vector3, Quaternion)Mixed Reality Pose (Vector3, Quaternion) Entrada de estilo de posición y rotación con los componentes Vector3 y QuaternionA position and rotation style input with both Vector3 and Quaternion components Un controlador de movimiento o un punteroA motion controller or Pointer

Los eventos que usan acciones de entrada no se limitan a los controladores físicos y todavía se pueden usar en el proyecto para que los efectos en tiempo de ejecución generen nuevas acciones.Events utilizing input actions are not limited to physical controllers and can still be utilized within the project to have runtime effects generate new actions.

Nota

Las acciones de entrada son uno de los pocos componentes que no se pueden editar en tiempo de ejecución, son solo una configuración en tiempo de diseño.Input actions are one of the few components which is not editable at runtime, they are a design time configuration only. Este perfil no se debe intercambiar mientras el proyecto se ejecuta debido a la dependencia del marco (y los proyectos) en los identificadores generados para cada acción.This profile should not be swapped out whilst the project is running due to the framework (and your projects) dependency on the ID's generated for each action.

Configuration Profile

Reglas de acciones de entradaInput actions rules

Las reglas de acción de entrada proporcionan una manera de traducir automáticamente un evento que se genera para una acción de entrada en a acciones diferentes en función de su valor de datos.Input action rules provide a way to automatically translate an event raised for one input action in to different actions based on its data value. Estos se administran sin problemas dentro del marco de trabajo y no incurren en ningún costo de rendimiento.These are managed seamlessly within the framework and do not incur any performance costs.

Por ejemplo, convertir el evento de entrada de eje dual único de un DPad en las 4 acciones "Dpad Up" / "DPad Down" / "Dpad Left" / "Dpad Right" correspondientes (como se muestra en la imagen siguiente).For example, converting the single dual axis input event from a DPad in to the 4 corresponding "Dpad Up" / "DPad Down" / "Dpad Left" / "Dpad Right" actions (as shown in the image below).

Esto también se puede hacer en su propio código.This could also be done in your own code. Sin embargo, al ver que se trata de un patrón muy común, el marco proporciona un mecanismo para hacerlo de forma "lista para usar".However, seeing as this was a very common pattern, the framework provides a mechanism to do this "out of the box"

Las reglas de acción de entrada se pueden configurar para cualquiera de los ejes de entrada disponibles.Input action Rules can be configured for any of the available input axis. Sin embargo, las acciones de entrada de un tipo de eje se pueden traducir a otra acción de entrada del mismo tipo de eje.However, input actions from one axis type can be translated to another input action of the same axis type. Puede asignar una acción de eje dual a otra acción de eje dual, pero no a una acción digital o ninguna.You can map a dual axis action to another dual axis action, but not to a digital or none action.

Perfil de reglas de acción de entrada


Configuración del punteroPointer configuration

Los punteros se usan para impulsar la interactividad en la escena desde cualquier dispositivo de entrada, lo que da una dirección y una prueba de acceso con cualquier objeto de una escena (que tiene un colisionador asociado o es un componente de la interfaz de usuario).Pointers are used to drive interactivity in the scene from any input device, giving both a direction and hit test with any object in a scene (that has a collider attached, or is a UI component). De forma predeterminada, los punteros se configuran automáticamente para controladores, cascos (mirada/foco) y entrada táctil o de mouse.Pointers are by default automatically configured for controllers, headsets (gaze / focus) and mouse / touch input.

Los punteros también se pueden visualizar dentro de la escena activa mediante uno de los muchos componentes de línea proporcionados por el Mixed Reality Toolkit o cualquiera de los suyos propios si implementan la interfaz IMixedRealityPointer de MRTK.Pointers can also be visualized within the active scene using one of the many line components provided by the Mixed Reality Toolkit, or any of your own if they implement the MRTK IMixedRealityPointer interface.

Input Pointer Profile
  • Extensión de apuntar: determina la extensión de apuntar global para todos los punteros, incluida la mirada.Pointing Extent: Determines the global pointing extent for all pointers, including gaze.
  • Máscaras de capa de Raycast que apuntan: determina con qué capas se van a convertir los punteros.Pointing Raycast Layer Masks: Determines which layers pointers will raycast against.
  • Debug Draw Pointing Ray: asistente de depuración para visualizar los rayos usados para la difusión de rayos.Debug Draw Pointing Rays: A debug helper for visualizing the rays used for raycasting.
  • Depurar los colores de los rayos de dibujo que apuntan: un conjunto de colores que se usarán para visualizar.Debug Draw Pointing Rays Colors: A set of colors to use for visualizing.
  • Prefab de cursor de mirada: facilita la especificación de un cursor de mirada global para cualquier escena.Gaze cursor prefab: Makes it easy to specify a global gaze cursor for any scene.

Hay un botón auxiliar adicional para saltar rápidamente al proveedor de miradas para invalidar algunos valores específicos de Gaze si es necesario.There's an additional helper button to quickly jump to the Gaze Provider to override some specific values for Gaze if needed.


Configuración de gestosGestures configuration

Los gestos son una implementación específica del sistema que permite asignar acciones de entrada a los distintos métodos de entrada "Gesto" proporcionados por varios SDK (por ejemplo, HoloLens).Gestures are a system specific implementation allowing you to assign input actions to the various "Gesture" input methods provided by various SDKs (e.g. HoloLens).

Nota

La implementación actual de Gestos es solo para el HoloLens y se mejorará para otros sistemas a medida que se agregan al Toolkit en el futuro (aún no hay fechas).The current Gestures implementation is for the HoloLens only and will be enhanced for other systems as they are added to the Toolkit in the future (no dates yet).

Gesture configuration

Comandos de vozSpeech commands

Al igual que los gestos, algunas plataformas en tiempo de ejecución también proporcionan funcionalidad "Speech to Text" inteligente con la capacidad de generar comandos que un proyecto de Unity puede recibir.Like gestures, some runtime platforms also provide intelligent "Speech to Text" functionality with the ability to generate commands that can be received by a Unity project. Este perfil de configuración permite configurar lo siguiente:This configuration profile allows you to configure the following:

  1. El Configuración general: "Comportamiento de inicio" establecido en Inicio automático o Inicio manual determina si inicializar KeywordRecognizer al iniciar el sistema de entrada o dejar que el proyecto decida cuándo inicializar KeywordRecognizer.General Settings - "Start Behavior" set to Auto Start or Manual Start determines whether to initialize KeywordRecognizer at input system startup or let the project decide when to initialize the KeywordRecognizer. "Nivel de confianza de reconocimiento" se usa para inicializar la API KeywordRecognizer de Unity"Recognition Confidence Level" is used to initialize Unity's KeywordRecognizer API
  2. Comandos de voz: registra "palabras" y las traduce en a acciones de entrada que el proyecto puede recibir.Speech Commands - Registers "words" and translates them in to input actions that can be received by your project. También se pueden adjuntar a las acciones del teclado si es necesario.They can also be attached to keyboard actions if required.

Importante

Actualmente, el sistema solo admite voz cuando se ejecuta en plataformas de Windows 10, por ejemplo, un escritorio de HoloLens y Windows 10, y se mejorará para otros sistemas a medida que se agregan a MRTK en el futuro (aún no hay fechas).The system currently only supports speech when running on Windows 10 platforms, e.g. HoloLens and Windows 10 desktop and will be enhanced for other systems as they are added to MRTK in the future (no dates yet).

Configuration Profile screens

Configuración de asignación de controladoresController mapping configuration

Una de las pantallas de configuración principales de la Mixed Reality Toolkit es la capacidad de configurar y asignar los distintos tipos de controladores que puede usar el proyecto.One of the core configuration screens for the Mixed Reality Toolkit is the ability to configure and map the various types of controllers that can be utilized by your project.

La pantalla de configuración siguiente permite configurar cualquiera de los controladores reconocidos actualmente por el kit de herramientas.The configuration screen below allows you to configure any of the controllers currently recognized by the toolkit.

Controller Mapping

MRTK proporciona una configuración predeterminada para los siguientes controladores o sistemas:The MRTK provides a default configuration for the following controllers / systems:

  • Mouse (incluida la compatibilidad con el mouse espacial 3D)Mouse (including 3D spatial mouse support)
  • Pantalla táctilTouch Screen
  • Mandos de XboxXbox controllers
  • Windows Mixed Reality controladoresWindows Mixed Reality controllers
  • HoloLens GestosHoloLens Gestures
  • CONTROLADORES DE WAND DE LA WAND DE SES VIVEHTC Vive wand controllers
  • Controladores táctiles de OculusOculus Touch controllers
  • Controlador remoto de OculusOculus Remote controller
  • Dispositivos OpenVR genéricos (solo usuarios avanzados)Generic OpenVR devices (advanced users only)

Al hacer clic en la imagen de cualquiera de los sistemas de controlador pre built, puede configurar una sola acción de entrada para todas sus entradas correspondientes; por ejemplo, consulte la pantalla de configuración del controlador táctil de Oculus a continuación:Clicking on the Image for any of the pre-built controller systems allows you to configure a single input action for all its corresponding inputs, for example, see the Oculus Touch controller configuration screen below:

Controller config screen

También hay una pantalla avanzada para configurar otros controladores de entrada de OpenVR o Unity que no se han identificado anteriormente.There is also an advanced screen for configuring other OpenVR or Unity input controllers that are not identified above.


Configuración de visualización del controladorController visualization settings

Además de la asignación del controlador, se proporciona un perfil de configuración independiente para personalizar cómo se presentan los controladores en sus escenas.In addition to the controller mapping, a separate configuration profile is provided to customize how your controllers are presented within your scenes.

Esto se puede configurar en un "Global" (todas las instancias de un controlador para una mano específica) o específico de un tipo de controlador o mano individual.This can be configured at a "Global" (all instances of a controller for a specific hand) or specific to an individual controller type / hand.

MRTK también admite modelos de controlador de SDK nativos para Windows Mixed Reality y OpenVR.The MRTK also supports native SDK controller models for Windows Mixed Reality and OpenVR. Se cargan como GameObjects en la escena y se posicionan mediante el seguimiento del controlador de la plataforma.These are loaded as GameObjects in your scene and positioned using the platform's controller tracking.

Si la representación del controlador en la escena debe desplazarse desde la posición del controlador físico, simplemente establezca ese desplazamiento con respecto al elemento prefab del modelo del controlador (por ejemplo, establecer la posición de transformación del prefab del controlador con una posición de desplazamiento).If your controller representation in the scene needs to be offset from the physical controller position, then simply set that offset against the controller model's prefab (e.g. setting the transform position of the controller prefab with an offset position).

Visualization profile

Utilidades del editorEditor utilities

Las utilidades siguientes solo funcionan en el editor y son útiles para mejorar la productividad del desarrollo.The following utilities work only in the editor and are useful to improve development productivity.

Utilidades de configuración del editor de MRTK

Inspectores de servicioService inspectors

Los inspectores de servicio son una característica solo del editor que genera objetos en escena que representan servicios activos.Service Inspectors are an editor-only feature that generates in-scene objects representing active services. Al seleccionar estos objetos se muestran inspectores que ofrecen vínculos de documentación, control sobre las visualizaciones del editor e información sobre el estado del servicio.Selecting these objects displays inspectors which offer documentation links, control over editor visualizations and insight into the state of the service.

Service Inspectors

Para habilitar los inspectores de servicio, active Usar inspectores de servicio en Editor Configuración el perfil de configuración.You can enable service inspectors by checking Use Service Inspectors under Editor Settings in the Configuration Profile.

Representador de búfer de profundidadDepth buffer renderer

Compartir el búfer de profundidad con algunas plataformas de realidad mixta puede mejorar la estabilización del holograma.Sharing the depth buffer with some mixed reality platforms can improve hologram stabilization. Por ejemplo, la plataforma de Windows Mixed Reality puede modificar la escena representada por píxel para tener en cuenta los movimientos sutiles de la cabeza durante el tiempo que se tardó en representar un fotograma.For example, the Windows Mixed Reality platform can modify the rendered scene per-pixel to account for subtle head movements during the time it took to render a frame. Sin embargo, estas técnicas requieren búferes de profundidad con datos precisos para saber dónde y a qué distancia está la geometría del usuario.However, these techniques require depth buffers with accurate data to know where and how far geometry is from the user.

Para asegurarse de que una escena representa todos los datos necesarios en el búfer de profundidad, los desarrolladores pueden alternar la característica Búfer de profundidad de representación en Editor Configuración en el perfil de configuración.To ensure a scene renders all necessary data to the depth buffer, developers can toggle the Render Depth Buffer feature under Editor Settings in the Configuration Profile. Esto tomará el búfer de profundidad actual y lo representará como color en la vista de escena aplicando un efecto posterior al procesamiento, , a DepthBufferRenderer la cámara principal.This will take the current depth buffer and render it as color to the scene view by applying a post-processing effect, DepthBufferRenderer, to the main camera.

Utilidad de búfer de profundidad de representación El cilindro azul de la escena tiene un material con ZWrite desactivado para que no se escriban datos de profundidadRender Depth Buffer Utility The blue cylinder in the scene has a material with ZWrite off so no depth data is written

Cambio de perfiles en tiempo de ejecuciónChanging profiles at runtime

Es posible actualizar perfiles en tiempo de ejecución y, por lo general, hay dos escenarios y horas diferentes en los que esto resulta útil:It is possible to update profiles at runtime, and there are generally two different scenarios and times in which in this is helpful:

  1. Modificador de perfil de inicialización de MRTK anterior: en el inicio, antes de inicializar MRTK y de que el perfil se active, reemplazando el perfil que aún no está en uso para habilitar o deshabilitar diferentes características en función de las funcionalidades del dispositivo.Pre MRTK initialization profile switch: At startup, before the MRTK is initialized and profile becomes active, replacing the not-yet-in-use profile to enable/disable different features based on the device capabilities. Por ejemplo, si la experiencia se ejecuta en REALIDAD virtual que no tiene hardware de asignación espacial, probablemente no tenga sentido tener habilitado el componente de asignación espacial.For example, if the experience is running in VR that doesn't have spatial mapping hardware it probably doesn't make sense to have spatial mapping component enabled.
  2. Conmutador de perfil activo: después del inicio, después de inicializar MRTK y de que se haya activado un perfil, cambie el perfil actualmente en uso para cambiar la forma en que se comportan determinadas características.Active profile switch: After startup, after the MRTK is initialized and a profile has become active, swapping the profile currently in use to change the way certain features behave. Por ejemplo, puede haber una sub experiencia específica en la aplicación que quiera quitar completamente los punteros de mano lejanos.For example, there may be a specific sub-experience in the application that wants far hand pointers completely removed.

Modificador de perfil de inicialización de MRTK anteriorPre MRTK initialization profile switch

Esto se puede lograr adjuntando un monobehaviour (ejemplo siguiente) que se ejecuta antes de la inicialización de MRTK (es decir, con el estado Activo()).This can be accomplished by attaching a MonoBehaviour (example below) which runs before MRTK initialization (i.e. Awake()). Tenga en cuenta que el script (es decir, llamar a ) debe ejecutarse antes que el script, lo que se puede lograr estableciendo la configuración del orden SetProfileBeforeInitialization MixedRealityToolkit de ejecución del script.Note the script (i.e. call to SetProfileBeforeInitialization) have to be executed earlier than the MixedRealityToolkit script, which can be achieved by setting Script Execution Order settings.

using Microsoft.MixedReality.Toolkit;
using UnityEngine;

/// <summary>
/// Sample MonoBehaviour that will run before the MixedRealityToolkit object, and change
/// the profile, so that when the MRTK initializes it uses the profile specified below
/// rather than the one that is saved in its scene.
/// </summary>
/// <remarks>
/// Note that this script must have a higher priority in the script execution order compared
/// to that of MixedRealityToolkit.cs. See https://docs.unity3d.com/Manual/class-MonoManager.html
/// for more information on script execution order.
/// </remarks>
public class PreInitProfileSwapper : MonoBehaviour
{

    [SerializeField]
    private MixedRealityToolkitConfigurationProfile profileToUse = null;

    private void Awake()
    {
        // Here you could choose any arbitrary MixedRealityToolkitConfigurationProfile (for example, you could
        // add some platform checking code here to determine which profile to load).
        MixedRealityToolkit.SetProfileBeforeInitialization(profileToUse);
    }
}

En lugar de "profileToUse", es posible tener un conjunto arbitrario de perfiles que se aplican a plataformas específicas (por ejemplo, uno para HoloLens 1, otro para VR, otro para HoloLens 2, etc.).Instead of "profileToUse", it's possible to have some arbitrary set of profiles which apply to specific platforms (for example, one for HoloLens 1, one for VR, one for HoloLens 2, etc). Es posible usar otros indicadores (por ejemplo, , o si la cámara es opaca o transparente), para averiguar qué perfil https://docs.unity3d.com/ScriptReference/SystemInfo.html cargar.It's possible to use various other indicators (e.g. https://docs.unity3d.com/ScriptReference/SystemInfo.html, or whether or not the camera is opaque/transparent), to figure out which profile to load.

Conmutador de perfil activoActive profile switch

Esto se puede lograr estableciendo la MixedRealityToolkit.Instance.ActiveProfile propiedad en un nuevo perfil reemplazando el perfil activo.This can be accomplished by setting the MixedRealityToolkit.Instance.ActiveProfile property to a new profile replacing the active profile.

MixedRealityToolkit.Instance.ActiveProfile = profileToUse;

Tenga en cuenta que, al establecer durante el tiempo de ejecución, la destrucción de los servicios en ejecución se realizará después de la última lateupdate() de todos los servicios y la creación de instancias e inicialización de los servicios asociados con el nuevo perfil se realizará antes de la primera update() de todos los ActiveProfile servicios.Note when setting ActiveProfile during runtime, the destroy of the currently running services will happen after the last LateUpdate() of all services, and the instantiation and initialization of the services associated with the new profile will happen before the first Update() of all services.

Durante este proceso puede producirse una indeseación apreciable en la aplicación.A noticeable application hesitation may occur during this process. Además, cualquier script con mayor prioridad que el script puede escribir su actualización antes de MixedRealityToolkit que el nuevo perfil se configure correctamente.Also any script with higher priority than the MixedRealityToolkit script can enter its Update before the new profile is properly setup. Consulte Configuración del orden de ejecución del script para obtener más información sobre la prioridad del script.See Script Execution Order settings for more information on script priority.

En el proceso de cambio de perfil, la cámara de interfaz de usuario existente permanecerá sin cambios, lo que garantiza que los componentes de la interfaz de usuario de Unity que requieren lienzo sigan funcionando después del cambio.In the profile switching process the existing UI camera will remain unchanged, ensuring Unity UI components that require canvas still work after the switch.

Consulte tambiénSee also