Systèmes, services d’extension et fournisseurs de données

dans la Shared Computer Toolkit de la réalité mixte, un grand nombre des fonctionnalités sont fournies sous la forme de services. Les services sont regroupés en trois catégories principales : les systèmes, les services d’extension et les fournisseurs de données.

Systèmes

les systèmes sont des services qui fournissent la fonctionnalité principale de la réalité mixte Shared Computer Toolkit. Tous les systèmes sont des implémentations de l' IMixedRealityService interface.

Chacun des systèmes répertoriés est exposé dans le Profilde configuration du composant MixedRealityToolkit.

Extensions

les services d’Extension sont des composants qui étendent les fonctionnalités de la réalité mixte Shared Computer Toolkit. Tous les services d’extension doivent spécifier qu’ils implémentent l' IMixedRealityExtensionService interface.

Pour plus d’informations sur la création de services d’extension, veuillez vous référer à l’article services d’extension .

Pour être accessible à MRTK, les services d’extension sont inscrits et configurés à l’aide de la section extensions du profil de configuration du composant MixedRealityToolkit.

Configuration d’un service d’extension

Fournisseurs de données

les fournisseurs de données sont des composants qui, par leur nom, fournissent des données à une réalité mixte Shared Computer Toolkit service. Tous les fournisseurs de données doivent spécifier qu’ils implémentent l' IMixedRealityDataProvider interface.

Notes

Tous les services ne requièrent pas de fournisseurs de données. parmi les systèmes de Shared Computer Toolkit de la réalité mixte, les systèmes d’entrée et de sensibilisation spatiale sont les seuls services à utiliser les fournisseurs de données.

Pour être accessible au service MRTK spécifique, les fournisseurs de données sont inscrits dans le profil de configuration du service.

Le code d’application accède aux fournisseurs de données via l' IMixedRealityDataProviderAccess interface. Pour simplifier l’accès, les fournisseurs de données peuvent également être récupérés par le biais de la CoreServices classe d’assistance.

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

Important

Bien que IMixedRealityDataProvider hérite de IMixedRealityService , les fournisseurs de données ne sont pas inscrits auprès du MixedRealityServiceRegistry . Pour accéder aux fournisseurs de données, le code d’application doit interroger l’instance de service pour laquelle elles ont été inscrites (par exemple, le système d’entrée).

Entrée

Le système d’entrée MRTK utilise uniquement les fournisseurs de données qui implémentent IMixedRealityInputDeviceManager .

Fournisseurs de données du système d’entrée

L’exemple suivant illustre l’accès au fournisseur de simulation d’entrée et l’activation/désactivation de la propriété SmoothEyeTracking.

IMixedRealityDataProviderAccess dataProviderAccess = CoreServices.InputSystem as IMixedRealityDataProviderAccess;

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

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

L’accès à un fournisseur de données pour le système d’entrée principal peut également être simplifié via l’utilisation de la CoreServices classe d’assistance.

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

Notes

Le système d’entrée retourne uniquement les fournisseurs de données pris en charge pour la plateforme sur laquelle l’application s’exécute.

Pour plus d’informations sur l’écriture d’un fournisseur de données pour le système d’entrée MRTK, consultez création d’un fournisseur de données de système d’entrée.

Reconnaissance spatiale

Le système de sensibilisation spatiale MRTK utilise uniquement des fournisseurs de données qui implémentent l' IMixedRealitySpatialAwarenessObserver interface.

Fournisseurs de données de système de sensibilisation spatiale

L’exemple suivant illustre l’accès aux fournisseurs de données de maillage spatial inscrits et la modification de la visibilité des maillages.

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;
    }
}

L’accès à un fournisseur de données pour le système de sensibilisation spatiale fondamental peut également être simplifié à l’aide de la CoreServices classe d’assistance.

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

Notes

Le système de sensibilisation spatiale retourne uniquement les fournisseurs de données pris en charge pour la plateforme sur laquelle l’application s’exécute.

Pour plus d’informations sur l’écriture d’un fournisseur de données pour le système de sensibilisation spatiale MRTK, consultez création d’un fournisseur de données de détection spatiale.

Voir aussi