Exercice - Ajouter une interaction manuelle avec objectmanipulator
Le script ObjectManipulator prend en charge la modalité de manipulation directe des mains et du modèle d’entrée des contrôleurs de mouvement. Lorsque le script est attaché à un objet, l’utilisateur peut déplacer, mettre à l’échelle ou faire pivoter l’objet avec ses mains. Dans cet exercice, vous créez deux cubes, leur attachez les scripts nécessaires, puis déplacer les cubes.
Ajouter et ajuster le premier cube
Dans la barre de menus, sélectionnez GameObject>3D Object>Cube.
La taille par défaut du cube est un mètre cube, ce qui est trop grand à nos fins. Nous allons réduire la taille jusqu’à 20 centimètres cubes.
Sélectionnez le cube, puis, dans l’inspecteur, modifiez les valeurs d’échelle du cube dans la section Transformer en procédant comme suit :
X = 0,2, Y = 0,2, Z = 0,2
Le cube a été placé dans la scène à la position par défaut (0, 0, 0). Cela signifie que le cube se trouve à la même position que le casque de l’utilisateur, et que l’utilisateur ne peut pas voir le cube s’il ne recule pas. Nous allons modifier les valeurs de position du cube afin qu'il soit dans un meilleur emplacement pour l'observation.
Dans l’inspecteur, remplacez les valeurs Position du cube dans la section Transformation par les éléments suivants :
X = -0,2, Y = 1,6, Z = 0,5
Nous voulons pouvoir voir trois côtés du cube, donc nous changeons également la rotation du cube.
Dans l’inspecteur, modifiez les valeurs de rotation du cube dans les valeurs de la section Transformer en procédant comme suit :
X = 9, Y = 14, Z = 0
Conseil / Astuce
Pour effectuer un zoom avant sur le cube, sélectionnez-le, vérifiez que le curseur pointe sur la fenêtre Scène , puis appuyez sur la touche F . Vous pouvez faire un zoom avant sur n’importe quel objet de cette façon.
Ajouter les scripts au cube
Pour qu’un objet soit « attrapable » avec des mains suivies, il doit avoir trois composants attachés :
- Un composant Collider (vous n’avez pas besoin de faire quoi que ce soit ici, le cube d’Unity a déjà un Box Collider attaché par défaut)
- Composant Manipulateur d’objet (script)
- Composant Constraint Manager (script)
Sélectionnez le cube, dans la fenêtre Inspecteur, cliquez sur le bouton Ajouter un composant, puis recherchez et sélectionnez le script Manipulateur d’objet.
Le script de manipulateur d’objet rend un objet mobile, évolutif et pivotable à l’aide d’une ou deux mains. Quand vous ajoutez le script Object Manipulator, le script Constraint Manager est automatiquement ajouté également, car le premier dépend du deuxième.
Mettre à jour le matériau du cube
Pour des raisons de performances, nous vous recommandons d’utiliser des matériaux MRTK au lieu des matériaux Unity par défaut.
- Avec le cube toujours sélectionné, recherchez et développez la section Matériaux sur le composant Renderer Mesh.
- Remplacez le matériau par défaut par le matériau MRTK_Standard_White, situé sous MRTK Standard Assets>Matériaux. Pour ce faire, faites glisser le matériau directement dans le champ Élément de la section Matériaux
Ajouter un deuxième cube
Dans Hiérarchie, cliquez avec le bouton droit sur le cube, puis sélectionnez Dupliquer. Le cube dupliqué apparaît avec le nom Cube (1).
Cliquez avec le bouton droit sur le cube d’origine, sélectionnez Renommer, puis nommez le cube Near Cube.
Cliquez avec le bouton droit sur le cube dupliqué, sélectionnez Renommer, puis nommez le cube Far Cube.
Pour le moment, il semble n’y avoir qu’un cube dans la vue Scene. C’est parce que Near Cube et Far Cube sont exactement au même endroit. Changeons la position et la rotation de Far Cube.
Avec far Cube toujours sélectionné, modifiez ses valeurs dans son composant Transform en procédant comme suit :
Position : X = 0,6, Y = 1,6, Z = 1,1
Rotation : X = 27, Y = 0, Z = 0
À présent, la caméra doit voir Near Cube à gauche et Far Cube un peu plus loin sur la droite. Pour confirmer cela, dans la hiérarchie, sélectionnez Caméra principale (sous MRTK XR Rig>Camera Offset), puis examinez la fenêtre Caméra principale dans la fenêtre Scène .
Conseil / Astuce
Si vous voulez que la vue dans la fenêtre Scene ressemble davantage à ce que voit la caméra, faites un défilement dans la fenêtre Scene. Vous devrez peut-être définir les indicateurs clairs de l’appareil photo sur Skybox si ce n’est pas par défaut.
Saisir et déplacer les cubes en mode de jeu
Sélectionnez le bouton Lecture. Au démarrage de la lecture du projet, la vue bascule vers la fenêtre Game.
Remarque
Avant de jouer, vérifiez qu'il y a un profil valide sous Paramètres du projet>MRTK3.
Sélectionnez le bouton à trois points au-dessus du coin supérieur droit de la fenêtre Jeu , puis sélectionnez Agrandir.
Appuyez longuement sur la barre d’espace pour faire apparaître la main droite simulée dans l’affichage.
Déplacez la main simulée plus près du cube proche jusqu’à ce qu’elle touche le cube sur le côté ou en bas.
Cliquez sur le bouton gauche de la souris (ce qui fait en sorte que la main « saisisse » le cube), puis faites glisser le cube autour de la scène.
Pour saisir et déplacer Far Cube, nous utilisons le pointeur lointain attaché à la main simulée.
Si vous avez besoin, appuyez de nouveau sur la barre d’espace pour faire apparaître la main droite simulée. Notez le pointeur lointain qui part de la fin de l’index de la main.
Rapprochez la main de Far Cube jusqu’à ce que vous puissiez voir l’extrémité du pointeur sur le cube. Vous devez peut-être faire plusieurs cercles avec la main pour que l’extrémité du pointeur apparaisse sur le cube.
Cliquez sur le bouton gauche de la souris (cela permet de fermer la main, en prenant ce que nous appelons le « mouvement de pincement »), puis faites glisser le cube autour de la scène.
