Sistemas, servicios de extensión y proveedores de datosSystems, extension services, and data providers

En el Mixed Reality Toolkit, muchas de las características se entregan en forma de servicios.In the Mixed Reality Toolkit, many of the features are delivered in the form of services. Los servicios se agrupan en tres categorías principales: sistemas, servicios de extensión y proveedores de datos.Services are grouped into three primary categories: systems, extension services and data providers.

SistemasSystems

Los sistemas son servicios que proporcionan la funcionalidad básica del Mixed Reality Toolkit.Systems are services that provide the core functionality of the Mixed Reality Toolkit. Todos los sistemas son implementaciones de la IMixedRealityService interfaz .All systems are implementations of the IMixedRealityService interface.

Cada uno de los sistemas enumerados aparece en el perfil de configuración del componente MixedRealityToolkit .Each of the listed systems are surfaced in the MixedRealityToolkit component's configuration profile.

ExtensionesExtensions

Los servicios de extensión son componentes que amplían la funcionalidad del Mixed Reality Toolkit.Extension services are components that extend the functionality of the Mixed Reality Toolkit. Todos los servicios de extensión deben especificar que implementen la IMixedRealityExtensionService interfaz .All extension services must specify that they implement the IMixedRealityExtensionService interface.

Para obtener información sobre la creación de servicios de extensión, consulte el artículo Servicios de extensión.For information on creating extension services, please reference the Extension services article.

Para ser accesibles para MRTK, los servicios de extensión se registran y configuran mediante la sección Extensiones del perfil de configuración del componente MixedRealityToolkit.To be accessible to the MRTK, extension services are registered and configured using the Extensions section of the MixedRealityToolkit component's configuration profile.

Configuración de un servicio de extensión

Proveedores de datosData providers

Los proveedores de datos son componentes que, por su nombre, proporcionan datos a un Mixed Reality Toolkit servicio.Data providers are components that, per their name, provide data to a Mixed Reality Toolkit service. Todos los proveedores de datos deben especificar que implementen la IMixedRealityDataProvider interfaz .All data providers must specify that they implement the IMixedRealityDataProvider interface.

Nota

No todos los servicios requerirán proveedores de datos.Not all services will require data providers. De los Mixed Reality Toolkit, los sistemas de entrada y reconocimiento espacial son los únicos servicios que usan proveedores de datos.Of the Mixed Reality Toolkit's systems, the Input and Spatial Awareness systems are the only services to utilize data providers.

Para que el servicio MRTK específico pueda acceder a ellos, los proveedores de datos se registran en el perfil de configuración del servicio.To be accessible to the specific MRTK service, data providers are registered in the service's configuration profile.

El código de aplicación tiene acceso a los proveedores de datos a través de la IMixedRealityDataProviderAccess interfaz .Application code accesses data providers via the IMixedRealityDataProviderAccess interface. Para simplificar el acceso, los proveedores de datos también se pueden recuperar a través de la CoreServices clase auxiliar.To simplify access, data providers can also be retrieved via the CoreServices helper class.

var inputSimulationService = CoreServices.GetDataProvider<IInputSimulationService>(CoreServices.InputSystem);

Importante

Aunque IMixedRealityDataProvider hereda de IMixedRealityService , los proveedores de datos no están registrados con MixedRealityServiceRegistry .Although IMixedRealityDataProvider inherits from IMixedRealityService, data providers are not registered with the MixedRealityServiceRegistry. Para acceder a los proveedores de datos, el código de la aplicación debe consultar la instancia de servicio para la que se registraron (por ejemplo, el sistema de entrada).To access data providers, application code must query the service instance for which they were registered (ex: input system).

EntradaInput

El sistema de entrada de MRTK solo usa proveedores de datos que implementan IMixedRealityInputDeviceManager .The MRTK input system utilizes only data providers that implement the IMixedRealityInputDeviceManager.

Proveedores de datos del sistema de entrada

En el ejemplo siguiente se muestra cómo acceder al proveedor de simulación de entrada y alternar la propiedad SmoothEyeTracking.The following example demonstrates accessing the input simulation provider and toggle the SmoothEyeTracking property.

IMixedRealityDataProviderAccess dataProviderAccess = CoreServices.InputSystem as IMixedRealityDataProviderAccess;

if (dataProviderAccess != null)
{
    IInputSimulationService inputSimulation =
        dataProviderAccess.GetDataProvider<IInputSimulationService>();

    if (inputSimulation != null)
    {
        inputSimulation.SmoothEyeTracking = !inputSimulation.SmoothEyeTracking;
    }
}

El acceso a un proveedor de datos para el sistema de entrada principal también se puede simplificar mediante el uso de la CoreServices clase auxiliar.Accessing a data provider for the core input system can also be simplified via use of the CoreServices helper class.

var inputSimulationService = CoreServices.GetInputSystemDataProvider<IInputSimulationService>();
if (inputSimulationService != null)
{
    // do something here
}

Nota

El sistema de entrada devuelve solo los proveedores de datos que se admiten para la plataforma en la que se ejecuta la aplicación.The input system returns only data providers that are supported for the platform on which the application is running.

Para obtener información sobre cómo escribir un proveedor de datos para el sistema de entrada de MRTK, consulte Creación de un proveedor de datos del sistema de entrada.For information on writing a data provider for the MRTK input system, please see creating an input system data provider.

Reconocimiento espacialSpatial awareness

El sistema de reconocimiento espacial de MRTK solo usa proveedores de datos que implementan la IMixedRealitySpatialAwarenessObserver interfaz .The MRTK spatial awareness system utilizes only data providers that implement the IMixedRealitySpatialAwarenessObserver interface.

Proveedores de datos del sistema de reconocimiento espacial

En el ejemplo siguiente se muestra cómo acceder a los proveedores de datos de malla espacial registrados y cambiar la visibilidad de las mallas.The following example demonstrates accessing the registered spatial mesh data providers and changing the visibility of the meshes.

IMixedRealityDataProviderAccess dataProviderAccess =
    CoreServices.SpatialAwarenessSystem as IMixedRealityDataProviderAccess;

if (dataProviderAccess != null)
{
    IReadOnlyList<IMixedRealitySpatialAwarenessMeshObserver> observers =
        dataProviderAccess.GetDataProviders<IMixedRealitySpatialAwarenessMeshObserver>();

    foreach (IMixedRealitySpatialAwarenessMeshObserver observer in observers)
    {
        // Set the mesh to use the occlusion material
        observer.DisplayOption = SpatialMeshDisplayOptions.Occlusion;
    }
}

El acceso a un proveedor de datos para el sistema de reconocimiento espacial básico también se puede simplificar mediante el uso de la CoreServices clase auxiliar.Accessing a data provider for the core spatial awareness system can also be simplified via use of the CoreServices helper class.

var dataProvider = CoreServices.GetSpatialAwarenessSystemDataProvider<IMixedRealitySpatialAwarenessMeshObserver>();
if (dataProvider != null)
{
    // do something here
}

Nota

El sistema de reconocimiento espacial devuelve solo los proveedores de datos que se admiten para la plataforma en la que se ejecuta la aplicación.The spatial awareness system returns only data providers that are supported for the platform on which the application is running.

Para obtener información sobre cómo escribir un proveedor de datos para el sistema de reconocimiento espacial de MRTK, consulte Creación de un proveedor de datos del sistema de reconocimiento espacial.For information on writing a data provider for the MRTK spatial awareness system, please see creating a spatial awareness system data provider.

Consulte tambiénSee also