Поделиться через


Руководство по Сетке 101. Глава 4. Перемещение объектов и активация анимации с помощью интерактивных элементов сетки и физики

В этой главе вы будете работать с моделью ветряной электростанции. Вы узнаете, как использовать интерактивные объекты сетки и физику для захвата и освобождения жестких тел (в данном случае ветряных турбин) и настройки триггера анимации с помощью визуального скрипта. Вы завернете вещи, ограничивающие ветровые турбины, чтобы они могли быть перемещены только в пределах указанной области.

Эта глава немного более проста, чем то, что вы сделали в главе 3---в этом нет сценариев, и сеть настроена так, что физика будет выглядеть одинаково для всех аватаров в сеансе.

Есть несколько вещей, которые мы должны сделать, прежде чем приступить к работе с первой станцией.

Перенастройка иерархии

  • В иерархии сверните GameObject Chapter3 , а затем разверните GameObject Chapter4 .

Снимок экрана: описание компьютера

Изменение представления для отображения главы 4 Sphere Терраса

В процессе работы с Сеткой участник будет плавно переходить от конца главы 3 к началу главы 4 и будет правильно расположен для начала главы 4 учебной деятельности. Однако при выходе из режима воспроизведения в конце главы 3 вы не были автоматически помещены с представлением к модели главы 4 в окне Сцена . Давайте настроим это представление.

  1. В иерархии выберите GameObject с именем 4.1 — Захват и выпуск.

    Снимок экрана: описание компьютера

  2. Наведите указатель мыши на окно Сцена и нажмите клавишу F на клавиатуре.

    Это центрирует представление на объекте 4.1 - Grab and Release , но, скорее всего, вы будете находиться не в нужном положении.

  3. Перетаскивайте, поворачивайте и(или) масштабировать представление, пока перед вами не увидите станции главы 4, как показано ниже.

    Автоматически созданное компьютером изображение модели горного описания

Станция 4.1: захват и освобождение

Цель для участника этой главы обучения состоит в том, чтобы переместить ветряные турбины из столешницы в океан. Оказавшись там, турбины будут ловить океанский ветер, заставляя их лопасти поворачиваться и генерировать энергию.

  1. В иерархии разверните 4.1 — Захват и выпуск GameObject. Обратите внимание, что он содержит три объекта Wind Turbine GameObject, расположенные на столешнице сцены.

    Снимок экрана: описание компьютера

    Давайте добавим возможности захвата и освобождения в WindTurbine1 , чтобы участники могли перемещать их в Сетке.

  2. В иерархии выберите WindTurbine1.

  3. В инспекторе нажмите кнопку Добавить компонент , а затем найдите и добавьте программу установки Mesh Interactable.

    Снимок экрана

    Совет

    Объяснение этого компонента было дано в главе 3 этого руководства.

  4. В том же компоненте щелкните раскрывающийся список Тип объекта и выберите Manipulable.

    Снимок экрана

  5. Убедитесь, что компонент активен.

  6. В компоненте "Жесткое", при необходимости разверните параметр Ограничения, а затем для параметров Замораживание поворота выберите X,Y и Z.

    Снимок экрана: автоматически созданное описание компьютера

Это предотвратит опрокидывание турбины, если поместить ее на неровную поверхность.

Проверка результатов своих действий

  1. Сохраните проект и нажмите кнопку Воспроизвести в редакторе Unity.

    Обратите внимание, что каждый раз, когда вы переходите в режим воспроизведения, вашей отправной точкой в окне Игры является глава 3 Sphere Терраса. Для этой главы мы хотим быть в другой террасе Sphere---в одной с функциями главы 4. К счастью, есть простой способ добраться туда.

  2. Поворачивайте представление вправо, пока не появится окно "Перейти к главе 4 ".

    Снимок экрана: описание компьютера

  3. Перейдите к информационному окку и нажмите кнопку Телепортироваться в главу 4 .

    Снимок экрана: автоматически созданное описание компьютера

  4. После того как вы прибудете в главу 4 Sphere Терраса, наведите курсор на WindTurbine1 - его форма изменится, - а затем перетащите турбину вокруг сцены.

    Турбина останется вертикальной в результате включения ограничений заморозки вращения .

    Рисунок

  5. Нажмите кнопку Воспроизведение в редакторе Unity, чтобы выйти из режима воспроизведения.

Вам не нужно обновлять две другие ветряные турбины - мы уже сделали это для вас.

Станция: триггер анимации 4.2

Идея здесь заключается в том, что, когда вы перетаскиваете ветряную турбину над океаном, "ветер" заставляет лопасти турбины вращаться. На самом деле происходит то, что прозрачный куб с именем Триггер анимации расположен над океаном и выступает в качестве тома триггера. При перетаскивании ветряной турбины в триггерный том запускается событие On Trigger Enter , которое запускает анимацию спиннинг-лезвия.

В этой главе мы добавим скрипт в GameObject, а затем включим анимацию в скрипте.

  1. В иерархии разверните узел GameObject 4.2 - Animation Trigger и выберите его дочерний объект с именем Animation Trigger.

    Снимок экрана

    Обратите внимание, что вы увидите зеленые контуры box Collider триггера анимации GameObject.

    Снимок экрана

  2. В инспекторе перейдите к компоненту Box Collider и выберите Is Trigger (Триггер).

    Снимок экрана

Совет

При выборе параметра Является триггером объект, компонент коллайдера присоединяется к тому триггера.

  1. В иерархии перейдите к главе 4>4.1 — захват и освобождение , а затем выберите WindTurbine1.
  2. Нажмите кнопку Добавить компонент , а затем найдите и добавьте компьютер скриптов.

Мы хотим, чтобы наш скрипт был внедрен, но обычно это означает, что вы должны начать создание нового графа скрипта с нуля. Мы возьмем ярлык; Пока для параметра Источник оставьте значение Graph . Мы подключим существующий граф скрипта, а затем преобразуем его во внедренный граф.

  1. Нажмите кнопку в поле Граф , а затем в окне SelectSceneGraph выберите SPWindTurbineScript.

    Снимок экрана

  2. Нажмите кнопку Преобразовать . Обратите внимание, что при этом параметр Graph удаляется, а параметр Источник изменяется на Внедрение.

Добавление анимации вращающегося лезвия в граф

Изучите граф скрипта. Он состоит из двух групп: верхняя группа запускает анимацию спиннинга лезвия, когда пользователь перетаскивает ветряную турбину в триггерный том, а нижняя группа останавливает анимацию, когда пользователь вытаскивает турбину из тома.

Снимок экрана

График почти настроен так, как мы хотим, но одна проблема остается. Два узла триггера Animator: Set имеют значение This ...

Снимок экрана

... но это (другими словами, WindTurbine1) не имеет анимации, которую мы хотим активировать. Давайте найдем его.

  1. В иерархии разверните узел WindTurbine1 , а затем разверните дочерний объект с именем WindTurbineBody. Откроется дочерний объект с именем Windmill_Turbine_001:Propellors10.

    Снимок экрана

  2. Выберите Windmill_Turbine_001:Propellors10, а затем в инспекторе обратите внимание, что он содержит компонент аниматора с контроллером аниматора с именем WindTurbine1Propellers.

    Снимок экрана

    Этот аниматор будет предоставлять нашу анимацию.

  3. Перетащите Windmill_Turbine_001:Propellors10 GameObject из иерархии , а затем в графе скрипта поместите его в первое поле узла Animator: Set Trigger , расположенного в первой группе.

    Снимок экрана

  4. Снова перетащите Windmill_Turbine_001:Propellors10 GameObject из иерархии , а затем в графе скрипта перетащите его в первое поле узла Аниматор: установка триггера , расположенного во второй группе.

Скрипт завершен.

Проверка результатов своих действий

  1. Сохраните проект и нажмите кнопку Воспроизведения в редакторе Unity.

  2. Как отмечалось ранее, при переходе в режим воспроизведения ваш аватар помещает ваш аватар в главу 3 Sphere Terrace. Поверните сцену вправо, а затем перейдите к кнопке Телепортировать на главу 4 и нажмите ее.

    Снимок экрана: автоматически созданное описание компьютера

  3. Теперь вы должны быть на террасе главы 4 Сферы. Перетащите WindTurbine1 (напоминание: это самый дальний в спине, с красными лезвиями) над океаном. Обратите внимание, что лопасти турбины в настоящее время вращаются.

    Изображение, содержащее снимок экрана, 3d-моделирование, компьютерную игру, описание программного обеспечения видеоигры, созданное автоматически

  4. Перетащите ту же турбину от океана и поместите ее обратно на столешницу. Обратите внимание, что лопасти турбины перестают вращаться.

  5. Завершив наблюдение за анимацией, нажмите кнопку Воспроизведения в редакторе Unity, чтобы выйти из режима воспроизведения.

Вам не нужно обновлять другие ветряные турбины--- мы уже сделали это для вас.

Станция 4.3: Ограничение тел

Сейчас нет ограничений на то, где участник может уронить ветряную турбину. Мы надеемся, что они размещают турбины в океане, где они могут поймать ветер, но участник может, например, случайно упасть турбину на пол. Мы хотим избежать этого, поэтому, чтобы гарантировать, что турбины могут приземлиться только на столешнице или в океане, мы можем создать поле сдерживания. Это в основном прозрачная коробка---турбины будут ограничены внутренней стороны коробки.

  1. В иерархии разверните 4.3 — Ограничение тела GameObject и выберите его дочерний объект с именем Containment Field.

    Снимок экрана: автоматически созданное описание компьютера

  2. В инспекторе нажмите кнопку Добавить компонент и добавьте компонент Поле вложения .

    Снимок экрана: автоматически созданное описание компьютера

  3. В компоненте Поле вложенности нажмите кнопку "+" справа от параметра Затронутые тела , а затем во всплывающем меню выберите условие Имя объекта игры .

    Снимок экрана: автоматически созданное описание компьютера

  4. В поле Начинается с введите WindTurbine. Так как все три ветряные турбины в нашей сцене начинаются с "WindTurbine", все они будут ограничены областью сдерживания.

    Снимок экрана: описание компьютера

Проверка результатов своих действий

  1. Сохраните проект и нажмите кнопку Воспроизведения в редакторе Unity.

  2. Как отмечалось ранее, при переходе в режим воспроизведения ваш аватар помещает ваш аватар в главу 3 Sphere Terrace. Поверните сцену вправо, а затем перейдите к кнопке Телепортировать на главу 4 и нажмите ее.

    Снимок экрана: автоматически созданное описание компьютера

  3. Теперь вы должны быть на террасе главы 4 Сферы. Перетащите одну из ветряных турбин от столешницы и океана и попытайтесь упасть его на пол. Поле вложенности не позволяет сделать это.

Глава 4. Сводка

В этой главе вы добавили функции сетки, которые позволяют участникам в вашем интерфейсе выполнять следующие действия:

  • Захват и перемещение объекта

  • Активация анимации, когда участник перетаскивает объект в том триггера

  • Удаление объекта только в определенной области, которую вы указали

Дальнейшие действия

Глава 5. Предоставление среды для тестирования