Exercice - Créer des placements d’objets intelligents avec des résolveurs
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.
Résolveur Directional Indicator
Utilisez le résolveur Directional Indicator pour diriger l’utilisateur vers des objets. Voici comment procéder :
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.
Tapez Indicator pour renommer l’objet Chevron récemment ajouté. Puis, dans la fenêtre Inspector, sélectionnez Add Component pour ajouter DirectionalIndicator.
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.
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.
Résolveur Tap To Place
Utilisez le résolveur Tap To Place pour repositionner des objets. Voici comment procéder :
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.
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é.
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.
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.
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
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.
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.
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.
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.