4. Размещение объектов в сцене4. Positioning objects in the scene

ОбзорOverview

В этом руководстве показано, как импортировать предоставляемые активы и размещать указанные объекты в сцене.In this tutorial, you will import the tutorial assets and position the provided objects in the scene.

ЗадачиObjectives

  • Научиться размещать объекты в сцене.Learn how to position objects in the scene
  • Научиться использовать функцию коллекции объектов сетки в MRTK.Learn how to use MRTK's Grid Object Collection feature

Импорт активов для руководстваImporting the tutorial assets

Скачайте и импортируйте следующий пользовательский пакет Unity:Download and import the following Unity custom package:

Когда вы завершите импорт активов для руководства, окно проекта должно выглядеть примерно так:After you have imported the tutorial assets your Project window should look similar to this:

Unity с окнами Hierarchy (Иерархия), Scene (Сцена) и Project (Проект) после импорта ресурсов для руководства

Совет

Сведения о том, как правильно импортировать пользовательский пакет Unity, см. в разделе Импорт набора средств для Смешанной реальности.For a reminder on how to import a Unity custom package, you can refer to the Importing the MRTK instructions.

Создание родительского объектаCreating the parent object

Щелкните правой кнопкой мыши пустое место в окне Hierarchy (Иерархия) и выберите Create Empty (Создать пустой), чтобы добавить в сцену пустой объект.In the Hierarchy window, right-click on an empty spot, and select Create Empty to add an empty object to your scene:

Unity с пунктом Create Empty (Создать пустой) в контекстном меню

Совет

Чтобы отобразить окна Scene (Сцена) и Game (Игра) рядом друг с другом, как на изображении ниже, перетащите окно Game (Игра) и поместите его справа от окна 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. Дополнительные сведения см. на странице Настройка рабочего пространства в документации по Unity.To learn more about customizing your workspace, you can refer to Unity's Customizing Your Workspace documentation.

Щелкните правой кнопкой мыши созданный объект, выберите Rename (Переименовать) и измените имя на RoverExplorer:Right-click on the newly created object, select Rename, and change the name to RoverExplorer:

Unity с пунктом Rename (Переименовать) в контекстном меню

Выбрав объект RoverExplorer в окне инспектора настройте компонент Transform (Преобразование) следующим образом:With the RoverExplorer object still selected, in the Inspector window, configure the Transform component as follows:

  • Position (Положение): X = 0, Y = -0,6, Z = 2.Position: X = 0, Y = -0.6, Z = 2
  • Rotation (Поворот): X = 0, Y = 0, Z = 0.Rotation: X = 0, Y = 0, Z = 0
  • Scale (Масштаб): X = 1, Y = 1, Z = 1.Scale: X = 1, Y = 1, Z = 1

Unity с выбранным и размещенным объектом RoverExplorer

Примечание

Камера представляет голову пользователя в исходном положении: X = 0, Y = 0, Z = 0.The camera represents the users head and is positioned at origin, X = 0, Y = 0, Z = 0. Обычно одна единица в Unity равна примерно одному метру в физическом мире.In general, 1 unit in Unity is roughly 1 meter in the physical world. Но из этого правила могут быть исключения, например для дочерних объектов масштабированных объектов.However, there are exceptions to this, for example, when objects are children of scaled objects. В приведенном выше сценарии для RoverExplorer задается положение на расстоянии 2 метра перед головой пользователя и 0,6 метра ниже нее.In the scenario above, the RoverExplorer is positioned 2 meters in front of and 0.6 meters below the user's head.

Добавление заготовок для выполнения задач руководстваAdding the tutorial prefabs

В окне Project (Проект) перейдите к папке Assets (Активы) > MRTK.Tutorials.GettingStarted > Prefabs (Заготовки) .In the Project window, navigate to the Assets > MRTK.Tutorials.GettingStarted > Prefabs folder:

Окно проекта Unity с выбранной папкой заготовок

Совет

Заготовкой называется предварительно настроенный игровой объект (GameObject), который хранится в качестве актива Unity и может повторно использоваться в проекте.A prefab is a pre-configured GameObject stored as a Unity Asset and can be reused throughout your project.

В окне Project (Проект) щелкните и перетащите заготовку Table (Таблица) в объект RoverExplorer, чтобы сделать ее дочерним объектом RoverExplorer. Затем в окне инспектора настройте компонент Transform (Преобразование) следующим образом: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 = 0.Position: X = 0, Y = -0.005, Z = 0
  • Rotation (Поворот): X = 0, Y = 0, Z = 0.Rotation: X = 0, Y = 0, Z = 0
  • Scale (Масштаб): X = 1,2, Y = 0,01, Z = 1,2.Scale: X = 1.2, Y = 0.01, Z = 1.2

Unity с выбранной и размещенной добавленной заготовкой Table

Совет

Для отображения сцены, как на рисунке ниже, используйте Scene Gizmo (Манипулятор сцены) справа в верхнем углу окна сцены, чтобы направить угол взгляда вдоль оси Z вперед. Затем дважды щелкните объект MixedRealityPlayspace, чтобы перевести на него фокус камеры, и при необходимости увеличьте масштаб.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.

В окне Project (Проект) щелкните и перетащите заготовку RoverAssembly в объект RoverExplorer, чтобы сделать ее дочерним объектом RoverExplorer. Затем в окне инспектора настройте компонент Transform (Преобразование) следующим образом: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 = 0.Position: X = -0.1, Y = 0, Z = 0
  • Rotation (Поворот): X = 0, Y = -135, Z = 0.Rotation: X = 0, Y = -135, Z = 0
  • Scale (Масштаб): X = 1, Y = 1, Z = 1.Scale: X = 1, Y = 1, Z = 1

Unity с выбранной и размещенной добавленной заготовкой RoverAssembly

Упорядочение объектов в коллекцииOrganizing objects in a collection

В окне Hierarchy (Иерархия) щелкните правой кнопкой мыши объект RoverExplorer и выберите Create Empty (Создать пустой), чтобы добавить пустой объект в качестве дочернего объекта RoverExplorer. Присвойте объекту имя RoverParts и настройте компонент Transform (Преобразование), следующим образом: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 = 0.Position: X = 0, Y = 0.06, Z = 0
  • Rotation (Поворот): X = 0, Y = 90, Z = 0.Rotation: X = 0, Y = 90, Z = 0
  • Scale (Масштаб): X = 1, Y = 1, Z = 1.Scale: X = 1, Y = 1, Z = 1

Unity выбранным и расположенным созданным объектом RoverParts

В окне Hierarchy (Иерархия) выберите все дочерние объекты RoverExplorer > RoverAssembly > RoverModel > Parts (Части). Щелкните их правой кнопкой мыши и выберите Duplicate (Дублировать), чтобы создать копию каждой части.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 со всеми выбранными частями и пунктом Duplicate (Создать копию) в контекстном меню

Совет

Чтобы выбрать несколько смежных объектов, нажав и удерживая клавишу SHIFT, выберите первый и последний объект.To select multiple adjacent objects, press-and-hold the SHIFT key while using the mouse to select the first and last object.

Оставив выбранными только что продублированные дочерние объекты Parts (Части), щелкните и перетащите их в объект RoverParts, чтобы сделать их дочерними объектами RoverParts.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 с новыми копиями частей, являющихся дочерними объектами RoverParts

Чтобы со сценой было проще работать, в окне Hierarchy (Иерархия) щелкните значок с изображением глаза слева от объекта. Для объекта 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. Так вы скроете объект в окне сцены, не изменяя его внутриигровую видимость.This hides the object in the Scene window without changing its in-game visibility:

Unity с отключенной видимостью сцены RoverAssembly

Совет

Дополнительные сведения об элементах управления видимостью и их применении для оптимизации представления сцены и рабочего процесса вы можете найти на странице Видимость сцены в документации по 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.

В окне Hierarchy (Иерархия) очистите имена дочерних объектов RoverParts, изменив добавленную запись (1) на _Part:In the Hierarchy window, clean up the RoverParts child objects' names by replacing the appended (1) with _Part:

Unity с очищенным именем копий частей

В окне Hierarchy (Иерархия) выберите объект RoverParts. Затем в окне инспектора нажмите кнопку Add Component (Добавить компонент). Найдите и выберите компонент GridObjectCollection, чтобы добавить его в объект 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:

Unity с объектом RoverParts с поиском Grid Object Collection при добавлении компонента

Настройте значения компонента GridObjectCollection следующим образом:Configure the GridObjectCollection component values as follows:

  • Sort Type (Тип сортировки): Alphabetical (По алфавиту).Sort Type: Alphabetic
  • Layout (Макет): По горизонталиLayout: Horizontal
  • Cell Width (Ширина ячейки): 0,25.Cell Width: 0.25
  • Distance from parent (Расстояние от родительского объекта): 0,38.Distance from parent: 0.38

Unity с настроенным компонентом GridObjectCollection

Затем нажмите кнопку Update Collection (Обновить коллекцию), чтобы обновить положение дочерних объектов RoverParts.Then click the Update Collection button to update the position of the RoverParts child objects:

Unity с примененным компонентом GridObjectCollection

Поздравляем!Congratulations

Из этого руководства вы узнали, как разместить объекты в сцене относительно пользователя и упорядочить объекты в коллекции с помощью функции коллекции объектов сетки MRTK.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.

Следующее руководство: 5. Создание динамического содержимого с помощью решателейNext Tutorial: 5. Creating dynamic content using Solvers