4. Positionnement des objets dans la scène4. Positioning objects in the scene

Vue d’ensembleOverview

Dans ce tutoriel, vous allez importer les ressources du tutoriel et positionner les objets fournis dans la scène.In this tutorial, you will import the tutorial assets and position the provided objects in the scene.

ObjectifsObjectives

  • Apprendre à positionner des objets dans la scèneLearn how to position objects in the scene
  • Apprendre à utiliser la fonctionnalité Grid Object Collection du MRTKLearn how to use MRTK's Grid Object Collection feature

Importation des ressources du tutorielImporting the tutorial assets

Téléchargez et importez le package personnalisé Unity suivant :Download and import the following Unity custom package:

Une fois que vous avez importé les ressources du tutoriel, votre fenêtre Project doit ressembler à ceci :After you have imported the tutorial assets your Project window should look similar to this:

Fenêtres Hierarchy, Scene et Project dans Unity, après l’importation des ressources du tutoriel

Conseil

Pour vous rappeler comment importer un package personnalisé Unity, reportez-vous aux instructions fournies dans Importation du MRTK.For a reminder on how to import a Unity custom package, you can refer to the Importing the MRTK instructions.

Création de l’objet parentCreating the parent object

Dans la fenêtre Hierarchy, cliquez avec le bouton droit sur une zone vide et sélectionnez Create Empty pour ajouter un objet vide à votre scène :In the Hierarchy window, right-click on an empty spot, and select Create Empty to add an empty object to your scene:

Menu contextuel Create Empty d’Unity

Conseil

Pour afficher côte à côte les fenêtres Scene et Game comme dans l’image ci-dessus, faites glisser la fenêtre Game à droite de la fenêtre Scene.To display your Scene and Game window side by side as shown in the image above, drag the Game window to the right side of the Scene window. Pour en savoir plus, consultez la page consacrée à la personnalisation de votre espace de travail dans la documentation Unity.To learn more about customizing your workspace, you can refer to Unity's Customizing Your Workspace documentation.

Cliquez avec le bouton droit sur l’objet que vous venez de créer, sélectionnez Rename, puis remplacez le nom par RoverExplorer :Right-click on the newly created object, select Rename, and change the name to RoverExplorer:

Menu contextuel Rename d’Unity

L’objet RoverExplorer étant toujours sélectionné, dans la fenêtre Inspector, configurez le composant Transform comme ceci :With the RoverExplorer object still selected, in the Inspector window, configure the Transform component as follows:

  • Position : X = 0, Y = -0.6, Z = 2Position: X = 0, Y = -0.6, Z = 2
  • Rotation : X = 0, Y = 0, Z = 0Rotation: X = 0, Y = 0, Z = 0
  • Scale : X = 1, Y = 1, Z = 1Scale: X = 1, Y = 1, Z = 1

Unity avec un objet RoverExplorer sélectionné et positionné

Notes

L’appareil photo, qui représente la tête de l’utilisateur, est positionné à l’origine (X = 0, Y = 0, Z = 0).The camera represents the users head and is positioned at origin, X = 0, Y = 0, Z = 0. En règle générale, 1 unité dans Unity correspond à peu près à 1 mètre dans le monde physique.In general, 1 unit in Unity is roughly 1 meter in the physical world. Il y a cependant des exceptions à cela, par exemple quand les objets sont des enfants d’objets mis à l’échelle.However, there are exceptions to this, for example, when objects are children of scaled objects. Dans le scénario ci-dessus, l’objet RoverExplorer est positionné 2 mètres devant la tête de l’utilisateur et 0,6 mètre en dessous.In the scenario above, the RoverExplorer is positioned 2 meters in front of and 0.6 meters below the user's head.

Ajout des préfabriqués du tutorielAdding the tutorial prefabs

Dans la fenêtre Project, accédez au dossier Assets > MRTK.Tutorials.GettingStarted > Prefabs :In the Project window, navigate to the Assets > MRTK.Tutorials.GettingStarted > Prefabs folder:

Fenêtre de projet Unity avec le dossier Prefabs sélectionné

Conseil

Un préfabriqué (Prefab) est un GameObject préconfiguré stocké en tant que ressource Unity et qui peut être réutilisé dans tout votre projet.A prefab is a pre-configured GameObject stored as a Unity Asset and can be reused throughout your project.

Dans la fenêtre Project, cliquez sur le préfabriqué Table et faites-le glisser sur l’objet RoverExplorer pour en faire un enfant de cet objet, puis dans la fenêtre Inspector, configurez le composant Transform comme ceci :From the Project window, click-and-drag the Table prefab on to the RoverExplorer object to make it a child of the RoverExplorer object, then in the Inspector window, configure the Transform component as follows:

  • Position : X = 0, Y = -0.005, Z = 0Position: X = 0, Y = -0.005, Z = 0
  • Rotation : X = 0, Y = 0, Z = 0Rotation: X = 0, Y = 0, Z = 0
  • Scale : X = 1.2, Y = 0.01, Z = 1.2Scale: X = 1.2, Y = 0.01, Z = 1.2

Unity avec le préfabriqué nouvellement ajouté Table, sélectionné et positionné

Conseil

Pour afficher votre scène comme dans l’image ci-dessus, utilisez le gizmo Scene en haut à droite de la fenêtre Scene pour ajuster l’angle de visualisation sur l’axe Z vers l’avant, double-cliquez sur l’objet MixedRealityPlayspace dans la fenêtre Hierarchy pour avoir le focus sur l’appareil photo, puis faites un zoom avant si nécessaire.To display your scene as shown in the image above, use the Scene Gizmo, located in the top right corner of the Scene window, to adjust the viewing angle to be along the forward Z axis, double-click the MixedRealityPlayspace object to focus on the camera, and zoom in as needed.

Dans la fenêtre Project, cliquez sur le préfabriqué RoverAssembly et faites-le glisser sur l’objet RoverExplorer pour en faire un enfant de cet objet, puis dans la fenêtre Inspector, configurez le composant Transform comme ceci :From the Project window, click-and-drag the RoverAssembly prefab on to the RoverExplorer object to make it a child of the RoverExplorer object, then in the Inspector window, configure the Transform component as follows:

  • Position : X = -0.1, Y = 0, Z = 0Position: X = -0.1, Y = 0, Z = 0
  • Rotation : X = 0, Y = -135, Z = 0Rotation: X = 0, Y = -135, Z = 0
  • Scale : X = 1, Y = 1, Z = 1Scale: X = 1, Y = 1, Z = 1

Unity avec le préfabriqué nouvellement ajouté RoverAssembly, sélectionné et positionné

Organisation des objets dans une collectionOrganizing objects in a collection

Dans la fenêtre Hierarchy, cliquez avec le bouton droit sur l’objet RoverExplorer, puis sélectionnez Create Empty pour ajouter un objet vide en tant qu’enfant de RoverExplorer. Nommez l’objet RoverParts, puis configurez le composant Transform comme ceci :In the Hierarchy window, right-click on the RoverExplorer object and select Create Empty to add an empty object as a child of the RoverExplorer, name the object RoverParts, and configure the Transform component as follows:

  • Position : X = 0, Y = 0.06, Z = 0Position: X = 0, Y = 0.06, Z = 0
  • Rotation : X = 0, Y = 90, Z = 0Rotation: X = 0, Y = 90, Z = 0
  • Scale : X = 1, Y = 1, Z = 1Scale: X = 1, Y = 1, Z = 1

Unity avec l’objet RoverParts nouvellement créé, sélectionné et positionné

Dans la fenêtre Hierarchy, sélectionnez tous les objets enfants RoverExplorer > RoverAssembly > RoverModel > Parts, cliquez dessus avec le bouton droit, puis sélectionnez Duplicate pour créer une copie de chaque élément :In the Hierarchy window, select all the RoverExplorer > RoverAssembly > RoverModel > Parts child objects, right-click on them and select Duplicate to create a copy of each of the parts:

Unity avec toutes les pièces (Parts) sélectionnées et le menu contextuel Duplicate

Conseil

Pour sélectionner plusieurs objets adjacents, maintenez la touche Maj enfoncée tout en utilisant la souris pour sélectionner le premier et le dernier objet.To select multiple adjacent objects, press-and-hold the SHIFT key while using the mouse to select the first and last object.

Les objets enfants Parts que vous venez de dupliquer étant toujours sélectionnés, cliquez dessus et faites-les glisser sur l’objet RoverParts pour en faire des objets enfants de cet objet :With the newly duplicated Parts child objects still selected, click-and-drag them on to the RoverParts object to make them child objects of the RoverParts object:

Unity avec les pièces (parts) nouvellement dupliquées en tant qu’enfants de l’objet RoverParts

Pour faciliter l’utilisation de votre scène, dans la fenêtre Hierarchy, cliquez sur l’icône œil à gauche de l’objet pour désactiver la visibilité de la scène pour l’objet RoverAssembly.To make it easier to work with your scene, in the Hierarchy window, click the eye icon to the left of the object to toggle the scene visibility for the RoverAssembly object off. Cette opération masque l’objet dans la fenêtre Scene sans changer sa visibilité dans le jeu :This hides the object in the Scene window without changing its in-game visibility:

Unity avec la visibilité de la scène RoverAssembly désactivée

Conseil

Pour en savoir plus sur les contrôles de visibilité de la scène et sur la façon dont vous pouvez les utiliser pour optimiser l’affichage et le workflow de votre scène, reportez-vous à la documentation Scene Visibility d’Unity.To learn more about the Scene Visibility controls and how you can use them to optimize your scene view and workflow, you can refer to Unity's Scene Visibility documentation.

Dans la fenêtre Hierarchy, nettoyez les noms des objets enfants RoverParts en remplaçant le suffixe (1) par _Part :In the Hierarchy window, clean up the RoverParts child objects' names by replacing the appended (1) with _Part:

Unity avec le nom des pièces (parts) dupliquées effacé

Dans la fenêtre Hierarchy, sélectionnez l’objet RoverParts. Dans la fenêtre Inspector, cliquez sur le bouton Add Component, puis recherchez et sélectionnez GridObjectCollection pour ajouter le composant GridObjectCollection à l’objet RoverParts :In the Hierarchy window, select the RoverParts object, then in the Inspector window, click the Add Component button, and search for and select GridObjectCollection to add the GridObjectCollection component to the RoverParts object:

Objet RoverParts d’Unity avec l’ajout du composant de collection d’objets de grille en cours

Configurez les valeurs du composant GridObjectCollection comme ceci :Configure the GridObjectCollection component values as follows:

  • Sort Type : AlphabeticSort Type: Alphabetic
  • Layout : HorizontaleLayout: Horizontal
  • Cell Width : 0.25Cell Width: 0.25
  • Distance from parent : 0.38Distance from parent: 0.38

Unity avec le composant GridObjectCollection configuré

Cliquez ensuite sur le bouton Update Collection pour mettre à jour la position des objets enfants de RoverParts :Then click the Update Collection button to update the position of the RoverParts child objects:

Unity avec le composant GridObjectCollection appliqué

FélicitationsCongratulations

Dans ce tutoriel, vous avez appris à positionner des objets dans la scène par rapport à l’utilisateur et à utiliser la fonctionnalité Grid Object Collection du MRTK pour organiser les objets dans une collection.In this tutorial, you learned how to position objects in the scene relative to the user and use MRTK's Grid Object Collection feature to organize objects in a collection.

Tutoriel suivant : 5. Création de contenu dynamique avec des solveursNext Tutorial: 5. Creating dynamic content using Solvers