Exercice - Créer des placements d’objets intelligents avec des résolveurs

Effectué

Les résolveurs font partie des composants du Mixed Reality Toolkit (MRTK). Examinons de plus près deux types de résolveurs et leurs fonctionnalités respectives.

Emplacement des solveurs dans le MRTK

Les résolveurs du MRTK se trouvent dans le dossier SDK du MRTK. Pour voir les résolveurs disponibles dans votre projet, dans la fenêtre Projet, accédez à Packages, Manipulation spatiale MRTK et Résolveurs.

Capture d’écran montrant l’emplacement du dossier des résolveurs.

Résolveur Directional Indicator

Utilisez le résolveur Directional Indicator pour diriger l’utilisateur vers des objets. Voici comment procéder :

  1. Dans la fenêtre Project, accédez à Assets>MRTK.Tutorials.GettingStarted>Prefabs. Faites glisser le préfabriqué Chevron dans la fenêtre Hiérarchie et définissez sa Position Transformer sur X = 0, Y = 1.5, Z = 2 pour le positionner à proximité de l’objet RoverExplorer.

    Capture d’écran montrant le préfabriqué Chevron récemment ajouté sélectionné.

  2. Tapez Indicator pour renommer l’objet Chevron récemment ajouté. Puis, dans la fenêtre Inspector, sélectionnez Add Component pour ajouter DirectionalIndicator.

    Capture d’écran montrant le composant du résolveur DirectionalIndicator ajouté.

  3. Configurez les composants DirectionalIndicator et SolverHandler comme suit :

    a. Vérifiez que l’option Tracked Target Type du composant SolverHandler est définie sur Head.

    b. Affectez RoverExplorer à Directional Target du composant DirectionalIndicator en le faisant glisser de la fenêtre Hierarchy vers le champ None (Transform).

    c. Remplacez View Offset par 0,2.

    Capture d’écran montrant le composant du résolveur DirectionalIndicator configuré.

  4. Pour entrer en mode Game, appuyez sur Play. Appuyez sur le bouton droit de la souris et maintenez-le enfoncé tout en déplaçant la souris vers la gauche ou vers la droite pour faire pivoter la direction du regard.

    Notez que lorsque vous éloignez votre regard de l’objet RoverExplorer, l’objet Indicator apparaît et pointe vers l’objet RoverExplorer.

    Capture d’écran montrant la vue divisée en mode Play avec le résolveur DirectionalIndicator en cours d’utilisation.

Résolveur Tap To Place

Utilisez le résolveur Tap To Place pour repositionner des objets. Voici comment procéder :

  1. Dans la fenêtre Hierarchy, sélectionnez l’objet RoverExplorer>RoverAssembly. Ensuite, dans Inspecteur, utilisez Ajouter un composant pour ajouter le composant Appuyer pour placer (Script). Configurez le composant comme suit :

    a. Vérifiez que l’option Tracked Target Type du composant SolverHandler est définie sur Head.

    b. Décochez la case Option Utiliser le décalage normal de la surface par défaut et vérifiez que l’option Décalage normal est définie sur 0.

    c. Cochez la case Keep Orientation Vertical.

    Capture d’écran montrant le composant du résolveur Tap To Place ajouté et configuré.

  2. Ensuite, utilisez Ajouter un composant pour ajouter le composant Interagissant avec état. Dans la fenêtre Inspecteur, recherchez l’événement On Clicked (). Sélectionnez l’icône + pour ajouter un nouvel événement. Configurez l’événement comme suit :

    a. Affectez l’objet RoverAssembly en tant qu’écouteur de l’événement On Clicked () en le faisant glisser depuis la fenêtre Hiérarchie vers le champ Aucun (Objet).

    b. Dans la liste déroulante Sans fonction, sélectionnez TapToPlace, et StartPlacement() pour appeler cette méthode lorsque l’événement est déclenché.

    Capture d’écran montrant l’événement Tap To Place « On Placing Started » configuré.

  3. L’objet RoverAssembly étant toujours sélectionné dans la fenêtre Hierarchy, dans la fenêtre Inspector, localisez l’événement On Placing Started (). Sélectionnez l’icône + pour ajouter un nouvel événement.

    Capture d’écran montrant l’événement Tap To Place « On Placing Started » ajouté.

  4. Configurez l’événement comme suit :

    a. Affectez l’objet RoverAssembly en tant qu’écouteur de l’événement On Placing Started () en le faisant glisser de la fenêtre Hierarchy vers le champ None (Object).

    b. Dans la liste déroulante No Function, sélectionnez TapToPlace>float SurfaceNormalOffset pour mettre à jour la valeur de la propriété SurfaceNormalOffset quand l’événement est déclenché.

    c. Vérifiez que l’argument a la valeur 0.

    Capture d’écran montrant l’événement Tap To Place « On Placing Started » configuré.

  5. Dans Hierarchy, cliquez avec le bouton droit sur un endroit vide. Sélectionnez 3D Object>Cube pour créer un objet temporaire représentant le sol et configurez le composant Transform comme suit :

    • Position : X = 0, Y = 0.15, Z = 6
    • Rotation : X = 0, Y = 0, Z = 0
    • Scale : X = 10, Y = 0,2, Z = 10

    Capture d’écran montrant l’objet temporaire Cube représentant le sol ajouté et positionné.

  6. Pour entrer en mode Game, appuyez sur Play. Appuyez ensuite sur le bouton droit de la souris et maintenez-le enfoncé tout en déplaçant la souris vers le bas jusqu’à ce que le regard pointe sur l’objet RoverAssembly.

    Capture d’écran montrant la vue divisée du mode Play avec le regard pointé sur l’objet RoverAssembly.

  7. Maintenez la barre d’espace enfoncée et cliquez sur le bouton gauche de la souris pour effectuer un clic dans l’air, puis démarrez le processus d’appui pour placer.

    Capture d’écran montrant l’opération de placement démarrée dans la vue divisée du mode Play.

  8. Appuyez sur le bouton droit de la souris et maintenez-le enfoncé tout en déplaçant la souris vers la gauche ou vers la droite pour faire pivoter la direction du regard. Lorsque vous êtes satisfait de l’emplacement, maintenez la barre d’espace et cliquez sur le bouton gauche de la souris pour effectuer un clic dans l’air final.

    Capture d’écran montrant l’opération de placement terminée dans la vue divisée du mode Play.

  9. Quand vous avez terminé de tester la fonctionnalité en mode Game, cliquez avec le bouton droit sur l’objet Cube, puis sélectionnez Delete pour le supprimer de la scène.

    Capture d’écran montrant comment supprimer l’objet temporaire Cube représentant le sol.