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


Руководство по Сетке 101. Добавление интерактивности с помощью визуального скрипта сетки



Примечание.

Мы делаем регулярные обновления набора средств Сетки, и это видео может не отражать все последние изменения. Вы должны просмотреть содержимое этой статьи как источник истины.

Теперь, когда мы завершили этап установки, давайте перейдем к созданию интерактивных объектов GameObjects! В этой главе мы рассмотрим визуальные скрипты сетки, которые можно использовать для добавления пользовательской логики в среду.

Примечание.

  • Существует два типа сценариев сетки: Облачная скриптация сетки, которая использует код C# и визуальный скрипт сетки, где создается граф скриптов, а затем добавляют узлы (также называемые единицы) в последовательность для создания логики написания кода. В этой версии руководства по Сетке 101 используется визуальное скриптирование сетки; Предыдущая версия использовала скрипты Mesh Cloud Scripting.

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

Станция 3.1. Создание кнопки взаимодействия

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

  • В окне сцены перейдите к террасе Sphere, содержащей станции для главы 3, и настройте представление таким образом, чтобы вы смотрели на первую станцию, 3.1 - Воспроизведение видео, как показано ниже.

Снимок экрана: окно воспроизведения видео в окне сцены Unity с первой станцией в среде

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

Добавление кнопки в сцену

  1. В Unity убедитесь, что gameObject с именем Chapter3 и его дочерним объектом с именем 3.1 — видео развернуто.

    Снимок экрана: Unity hierachy с развернутой папкой

  2. В окне проекта найдите префаб "ButtonBase". Убедитесь, что вы выбрали ALL для фильтра поиска .

    Снимок экрана: термин Buttonbase, на котором выполняется поиск в окне проекта в Unity

  3. Перетащите ButtonBase из окна проекта, а затем в иерархии удалите его в GameObject с именем 3.1 . Видео, чтобы ButtonBase помещается в качестве дочернего объекта в 3.1 - Видео.

    Снимок экрана: Buttonbase, перетаскиваемый в иерархию и добавленный в GameObject с именем 3.1 . Видео

    Убедитесь, что значения позиции преобразования>для ButtonBase имеют значение 0, 0, 0, 0.

    ButtonBase помещается в сцену немного ниже, чем там, где мы хотим. Давайте исправим это.

  4. Убедитесь, что ButtonBase выбран в иерархии.

  5. В инспекторе измените значение позиции>преобразования>Y на "1".

Готово! Теперь ButtonBase правильно расположен под экраном видео.

Снимок экрана: Unity, показывающий ButtonBase под объектом BackplateBase

Переименование кнопки

  • При выборе ButtonBase в инспекторе измените имя ButtonBase на PlayVideoButton.

    Снимок экрана: Unity с переименованной в PlayVideButton ButtonBase

Изменение метки кнопки

Прямо сейчас текст на кнопке " Метка". Давайте изменим это на "Играть".

  1. В иерархии разверните playVideoButton GameObject, чтобы отобразить дочерний объект Button, а затем разверните кнопку, чтобы отобразить дочерние объекты, а затем выберите дочерний объект Label.

    Снимок экрана: Unity, показывающий hierarcchy с выделенной меткой для кнопки.

  2. В инспекторе перейдите к компоненту TextMeshPro - Text, а затем в поле "Ввод текста" измените текст на "Воспроизвести".

    Снимок экрана: Unity с инспектором метки кнопки с выделенным текстом воспроизведения.

Создание визуального скрипта для кнопки

  1. В иерархии убедитесь, что выбран PlayVideoButton.

  2. В инспекторе нажмите кнопку "Добавить компонент" и выберите "Компьютер скрипта".

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

    Снимок экрана: Unity с двумя компонентами, которые были добавлены, компьютер скрипта и переменные.

  3. Обратите внимание, что в компоненте "Компьютер скрипта" параметр "Источник" имеет значение Graph. У вас есть два варианта исходного кода: Graph и Embed. У каждого есть преимущества и недостатки. Мы будем выбирать Graph для наших скриптов, так как скрипт Graph сохраняется в виде отдельного файла, и это обеспечивает большую гибкость.

    Совет

    Граф и внедрение подробно описаны в статье "Компьютер скриптов Unity".

  4. В компоненте "Компьютер скрипта " нажмите кнопку "Создать ".

  5. В окне "Сохранить граф" создайте новую папку и переименуйте ее в "Скрипты".

  6. Откройте папку "Скрипты", а затем в текстовом поле "Имя файла" введите "PlayVideoButton".

  7. По завершении нажмите кнопку "Сохранить ".

  8. В компоненте "Компьютер скрипта" введите имя в поле "Заголовок " для графа: "Видеопроигрыватель".

  9. Введите описание в поле сводки для графа: "Определяет, как видеопроигрыватель реагирует на действия воспроизведения и остановки".

    __________________

Настройка графа скриптов

  1. В компоненте "Компьютер скрипта " нажмите кнопку "Изменить граф". Откроется окно "Граф скрипта ". Перетащите и поместите его рядом с вкладкой "Проект" и "Консоль", если она еще не там, чтобы увидеть окно "График скриптов" и "Сцена" одновременно.

    Снимок экрана: Unity, показывающий компонент

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

    Примечание.

    Узел также называется единицей в визуальном скрипте. В этом руководстве мы продолжим использовать узел терминов.

  2. Нам не нужны узлы OnStart и OnUpdate по умолчанию. Удалите их.

Макет графа скрипта

В графе сценариев будет два раздела:

Раздел 1. Определение нажатия кнопки воспроизведения и остановки видеопроигрывателя. Раздел 2. Когда он щелкается, проиграйте видео. Когда он снова щелкается, остановите видео.

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

_______________

Определение нажатия кнопки

Первый раздел, который определяет, нажмет ли кнопка, потребуется три узла. GameObject в проекте, который фактически "прослушивает" и реагирует на нажатие кнопки. Добавим это в граф скриптов.

Создание переменной объекта Button

  1. В иерархии разверните PlayVideoButton.

  2. В блоке "Граф скриптов" создайте переменную объекта: введите имя "Button" в поле (Новое имя переменной) и нажмите кнопку "+".

    ________________

  3. Задайте для типа переменной объекта значение Game Object.

  4. В иерархии перетащите файл Button GameObject, а затем перетащите его в поле "Значение" новой переменной.

    ________________

  5. Перетащите переменную объекта Button из доски, а затем удалите ее в графе скриптов, чтобы добавить ее в качестве узла.

    ________________


Совет. Вам может потребоваться провести некоторое время здесь, чтобы изучить некоторые компоненты для Button GameObject:

Настройка взаимодействия сетки: этот компонент делает объект Button , с которым можно взаимодействовать. Дополнительные сведения см. в статье "Захват", удержание и создание с помощью взаимодействия.

Снимок экрана: окно установки сетки с возможностью взаимодействия сетки и включенные параметры.

Компьютер скриптов: это граф скриптов с именем "Базовое поведение кнопки".

Снимок экрана: Unity с окном

Если вы перейдете в режим воспроизведения, вы увидите, что новый компонент с именем "Текст взаимодействия сетки" добавляется в button.

Снимок экрана: Unity, показывающий новый компонент Сетка Взаимодействуемого тела, добавленный в компонент Button.

Этот компонент добавляется автоматически во время выполнения для взаимодействуемых тел; Он предоставляет различные свойства для визуального скрипта, таких как IsHovered и IsSelected, который пригодится в какой-то момент.


В графе скриптов давайте добавим узел, который позволяет нам знать, когда выбрана кнопка.

  1. Если вам нужно, закройте режим воспроизведения, а затем выберите PlayVideoButton в иерархии, чтобы убедиться, что он отображается в окне "Граф скриптов".

  2. В графе скрипта щелкните и удерживайте порт порта порта порта получения переменной объекта, а затем нажмите кнопку мыши. Откроется нечеткий поиск. ПРЕДУПРЕЖДЕНИЕ. После открытия нечеткого средства поиска не нажимайте нигде за пределами интерфейса Unity. Это закрывает нечеткий поиск и приводит к непредсказуемому поведению в графе скриптов.

    Снимок экрана: описание воспроизведения видео

  3. Найдите "Выбрано", а затем в списке выберите текст, взаимодействующий с сеткой: IsSelected.

    Снимок экрана: описание воспроизведения видео

    Примечание. Этот узел выводит логическое значение; его можно подтвердить в инспекторе Графа.

  4. Перетащите соединитель из порта вывода узла Is Selected , а затем создайте новый узел с именем Microsoft Mesh: On State Changed. (В нечетком поиске найдите измененное состояние.)

    Снимок экрана: описание воспроизведения видео

Это три узла обнаружения нажатия кнопки. Узел Is Selected начинается со значения False, но при нажатии кнопки значение изменяется на True и передается узлу On State Changed . Затем этот узел активирует узлы воспроизведения и остановки, которые мы добавим далее.

Воспроизведение или остановка видео

Если значение "Изменено состояние" имеет значение true, видео будет воспроизводиться. Если он уже играет, и кнопка нажимается, в состоянии изменено значение false, и видео перестает воспроизводиться. Это влияет на узлы в разделе 2 графа скриптов, который мы скоро добавим, чтобы предоставить видео и по-прежнему изображение, которое можно отобразить.

Следующий шаг заключается в добавлении узла для определения потока.

  1. Перетащите соединитель из порта вывода элемента управления узла "Изменено состояние", а затем создайте новый узел, если узел. (В нечетком поиске найдите значение if.)

    Снимок экрана: описание воспроизведения видео

  2. Перетащите соединитель из порта вывода данных узла On State Changed в порт ввода данных узла if .

    Снимок экрана: описание воспроизведения видео

Создайте переменную, чтобы определить, воспроизводит ли видео или нет

  1. На вкладке "Объект" перейдите на вкладку "Blackboard", а затем создайте переменную с именем IsPlaying. Введите "Логический" и оставьте флажок "Значение" не выбран. Это дает логическое значение по умолчанию false.

    Снимок экрана: описание воспроизведения видео

  2. Перетащите переменную isPlaying в граф скриптов и удалите ее справа от узла *If .

  3. Перетащите соединитель из порта выходных данных True Control узла If и создайте новый узел переменной объекта Set. (В нечетком поиске найдите объект set.).

    Снимок экрана: описание воспроизведения видео

  4. В раскрывающемся списке "Задать объектную переменную" щелкните имя переменной, а затем выберите "Воспроизвести".

    Снимок экрана: описание воспроизведения видео

    Переменная isPlaying должна выполнять двойную пошлину здесь. Чтобы убедиться, что isPlaying всегда имеет правильное значение, давайте предоставим ему входные данные из узла Negate .

  5. Перетащите соединитель из нижнего порта ввода данных переменной объекта Set: isPlaying node и создайте новый узел Negate . (В нечетком поиске найдите негейт.)

    Снимок экрана: описание воспроизведения видео

  6. Перетащите соединитель из порта ввода данных узла Negate и создайте новый узел Get Object Variable . (В нечетком поиске найдите переменную объекта.)

  7. В узле "Получить переменную объекта" щелкните раскрывающийся список имени переменной, а затем выберите isPlaying.

    Снимок экрана: описание воспроизведения видео

Узел Negate изменяет значение IsPlaying на противоположность заданному в данный момент значению. При запуске сцены выполняется значение false (по умолчанию). При нажатии кнопки "Воспроизведение и остановка" узел Negate вызывает воспроизведение в узле "Переменная объекта set" значение true, и это делает воспроизведение видео. После нажатия кнопки узел Negate приведет к сбросу значения false, и это приведет к остановке видео.

Воспроизведение видео или отображение по-прежнему изображения

Теперь мы приступим к созданию раздела 2 графа скриптов. Вы добавите узлы, которые определяют, изменяются ли изменения в isPlaying . Это определяет, следует ли воспроизводить видео или отображать по-прежнему изображение в WebSlate станции 3.1.

  1. В нижней части графа добавьте узел get Object Variable и задайте для нее значение isPlaying. (Вы можете щелкнуть правой кнопкой мыши граф, а затем выбрать Добавление узла. Поиск объекта get.)

    Снимок экрана: описание воспроизведения видео

  2. Перетащите соединитель из порта вывода данных в узле Get Object Variable: isPlaying , а затем создайте новый узел On State Changed . (В нечетком поиске найдите измененное состояние.)

    Снимок экрана: описание воспроизведения видео

  3. Перетащите соединитель из порта выходных данных элемента управления узла On State Changed и создайте новый узел If . (В нечетком поиске найдите значение if.)

  4. Перетащите соединитель из порта вывода данных узла On State Changed и подключите его к порту ввода данных узла if .

    Снимок экрана: описание воспроизведения видео

Видео и VideoStill (изображение) GameObjects

  1. В иерархии разверните приложение VideoPlayer GameObject и обратите внимание, что у него есть два дочерних объекта: Video и VideoStill.

  2. Выберите "Видео", а затем в инспекторе обратите внимание на следующее:

    • Видео имеет компонент с именем Видеопроигрыватель, который имеет ссылку на видео Wind Turbine.

    • Видео неактивно (флажок рядом с его именем пуст).

  3. В иерархии выберите VideoStill GameObject, а затем в инспекторе обратите внимание на следующее:

    • VideoStill имеет все еще изображение, подключенное.

    • VideoStill активен (флажок рядом с его именем выбран).

    Снимок экрана: описание воспроизведения видео

Когда сцена начинается, на экране видео отображается по-прежнему изображение (из-за активной активности VideoStill ) и не воспроизводит видео (которое связано с неактивным видео ). Когда участник нажимает кнопку воспроизведения и остановки во время отображения воспроизведения, он делает видео активным, что приводит к воспроизведению видео и одновременно делает VideoStill неактивным, что скрывает по-прежнему изображение. Метка кнопки также изменяется с "Воспроизведение " на "Остановить ", когда участник снова нажимает кнопку, видео выполняется неактивно, останавливает видео, а VideoStill снова активируется, что делает видеоэкран отображением по-прежнему изображения снова.

Остальные узлы в нашем графе делают все это происходит.

Создание переменных объектов Video и VideoStill (image)

Создадим переменные объекта, которые содержат значения для Video и VideoStill GameObjects.

  1. В иерархии разверните VideoPlayer.

  2. В блоке "Граф скриптов" создайте переменную объекта: введите имя "Видео" в поле "Новое имя переменной", а затем нажмите кнопку "+".

  3. Задайте для типа переменной объекта значение Game Object.

  4. Из иерархии перетащите видео gameObject и удалите его в поле "Значение" новой переменной.

    ________________

  5. В Blackboard создайте переменную объекта: введите имя VideoStill в поле (Новое имя переменной) и нажмите кнопку "+".

  6. Задайте для типа переменной объекта значение Game Object.

  7. Из иерархии перетащите видеостильную игруObject, а затем удалите ее в поле "Значение" новой переменной.

    ________________

Структура графа скрипта

Это хорошее место для остановки и рассмотрения того, как мы хотим разработать остальную часть раздела 2 нашего графа скриптов. Наш узел If будет ветвь в потоке true и потоке false. Наши переменные объектов должны быть легко доступными для обоих потоков, поэтому мы поместим их в строку между потоками, как показано здесь:

________________

Добавление переменных объекта Video и VideoStill в граф скриптов

  1. Перетащите переменную видеообъекта из доски, а затем удалите ее в графе скриптов, чтобы добавить ее в качестве узла. Поместите его под узлом If .

    ________________

  2. Перетащите переменную объекта VideoStill из черной доски , а затем удалите ее в графе скриптов, чтобы добавить ее в качестве узла. Поместите его справа от переменной объекта Get: Video node.

    ________________

Включение видео

  1. Перетащите соединитель из порта выходных данных элемента управления True узла If , а затем создайте новый игровой объект: задайте активный узел. (В нечетком поиске найдите параметр "Активный".)

  2. Перетащите соединитель из порта вывода данных переменной get Object: Video node, а затем подключите его к первому порту ввода данных объекта игры: задать активный узел.

  3. Установите флажок "Значение узла", что делает узел активным.

    ____________

  4. Перетащите соединитель из порта вывода данных узла Get Object Variable: VideoStill , а затем подключите его к первому порту ввода данных объекта игры: задайте только что созданный активный узел.

    Снимок экрана: описание воспроизведения видео

  5. Установите флажок "Значение узла" без выбора. Это гарантирует, что узел неактивен.

    Теперь при нажатии кнопки видео будет воспроизводиться, и изображение по-прежнему будет скрыто. Нам нужно еще одно в этой последовательности. Так как кнопка воспроизведения и остановки является переключателем, мы должны убедиться, что после нажатия кнопки "Воспроизвести", метка кнопки изменяется на "Остановить", а затем, когда она снова нажимается, метка меняется на Play. Для этого необходимо создать и добавить переменную объекта, а затем добавить узел TextMeshPro .

Создание и добавление переменной объекта Label

  1. В иерархии убедитесь, что playVideoButton и его дочерний объект Button развернуты.

    ________________

  2. В blackboard script Graph создайте переменную объекта: введите имя "Метка" в поле "Новое имя переменной" , а затем нажмите кнопку "+".

  3. Задайте для типа переменной объекта значение Game Object.

  4. В иерархии перетащите метку GameObject, а затем удалите ее в поле "Значение" новой переменной.

    ________________

  5. Перетащите переменную объекта метки из доски , а затем удалите ее в графе скриптов, чтобы добавить ее в качестве узла. Поместите его справа от узла Get Object Variable: VideoStill .

    ________________

Добавление узла Text Mesh Pro

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

    Снимок экрана: описание воспроизведения видео

  2. Перетащите соединитель из порта вывода данных узла Get Object Variable: Label node, а затем подключите его к верхнему порту ввода данных в текстовой сетке Pro: задайте текстовый узел.

  3. В текстовом поле узла введите "Остановить".

    Снимок экрана: описание воспроизведения видео

Добавление узлов для остановки видео

Еще три узла, чтобы перейти к этому графу! Нам нужно настроить ложное условие для кнопки, чтобы при нажатии кнопки во время воспроизведения видео переменная isPlaying становится ложной, и это приводит к остановке видео и метки кнопки для повторного воспроизведения.

Мы можем воспользоваться ярлыком здесь.

  1. Щелкните три узла в верхней строке, составляющие поток "if true".

    Снимок экрана: описание воспроизведения видео

  2. Щелкните правой кнопкой мыши граф скрипта, а затем в всплывающем меню выберите "Дублировать выделение".

  3. Перетащите повторяющиеся узлы вниз в графе и поместите их под строку переменных.

    Снимок экрана: описание воспроизведения видео

Настройка узлов if false

  1. Перетащите соединитель из порта вывода данных переменной get Object: Video node, а затем подключите его к верхнему порту ввода данных первого игрового объекта: установите активный узел в нижней строке узлов.

    Снимок экрана: описание воспроизведения видео

  2. В том же первом игровом объекте: задайте активный узел, отмените выбор значения.

  3. Перетащите соединитель из порта вывода данных узла Get Object Variable: VideoStill , а затем подключите его к верхнему порту ввода данных второго игрового объекта: установите активный узел в нижней строке узлов.

  4. В этом втором игровом объекте: установите активный узел, выберите значение.

  5. Перетащите соединитель из порта вывода данных в узле Get Object Variable: Label node, а затем подключите его к верхнему порту ввода данных текстовой сетки Pro: задайте справа текстовый узел.

  6. В том же текстовом элементе Mesh Pro: задайте текстовый узел, измените текст с "Остановить воспроизведение".

  7. Перетащите соединитель из порта вывода выходных данных элемента управления False, а затем подключите его к порту ввода элемента управления первого игрового объекта: установите активный узел в нижней строке узлов.

    Снимок экрана: описание воспроизведения видео

Совместное использование взаимодействия видеопроигрывтеля с другими пользователями в интерфейсе

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

  1. В иерархии убедитесь, что выбран PlayVideoButton.

  2. В инспекторе нажмите кнопку "Добавить компонент", а затем добавьте область локальных скриптов.

    Снимок экрана: описание воспроизведения видео

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

Снимок экрана: описание воспроизведения видео

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

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

  2. В окне игры нажмите кнопку "Воспроизвести" под видеопроигрывательом. Это приводит к тому, что метка на кнопке изменится на Stop и краткое видео о ветряных турбинах, которые будут воспроизводиться на экране над кнопкой.

    Снимок экрана: описание воспроизведения видео

  3. Когда вы закончите смотреть видео, нажмите кнопку, которую вы снова редактировали (теперь она имеет метку Stop).

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

Станция 3.2. Активация диалогового окна сведений

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

  1. В иерархии свернуть видеообъект 3.1.

  2. В окне сцены обратите внимание, что станция триггера диалога сведений находится справа от станции воспроизведения видео 3.1. Настройте представление, чтобы вы могли четко видеть станцию 3.2.

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

  3. В инспекторе разверните окно GameObject с именем 3.2 . Диалоговое окно сведений.

  4. В иерархии выберите InfoButtonWrapper.

    Снимок экрана: 3.2 — иерархия GameObject Info_Dialog с выбранным Information_Button

    В инспекторе обратите внимание, что InfoButtonWrapper подключен к компоненту области локальных сценариев, а переменные визуального скрипта share в этом параметре игрового объекта не выбраны.

    Снимок экрана: 3.2 — иерархия GameObject Info_Dialog с выбранным Information_Button

    Это связано с тем, что после нажатия кнопки, которая создает диалоговое окно сведений, кнопка становится скрытой для них. Если этот параметр был выбран, кнопка станет скрытой для всех в сцене, и мы этого не хотим.

  5. В инспекторе перейдите к компоненту "Компьютер скрипта", который содержит граф "Показать диалоговое окно", а затем нажмите кнопку "Изменить граф".

    Снимок экрана инспектора Information_Button

  6. На графе перетащите соединитель из порта "True Control Output" узла If, а затем создайте новую сетку Microsoft Mesh: показать узел диалогового окна. (В нечетком поиске найдите диалоговое окно отображения.)

    Снимок экрана, показывающий подключение узла к новому узлу диалогового окна

  7. В узле "Показать диалоговое окно" щелкните поле "Сообщение", а затем замените слово "Сообщение" следующим предложением:

    Знаете ли вы, что крупнейшая в мире ветряная турбина имеет лопасти длиннее футбольного поля?

    Это сообщение, которое появится в диалоговом окне сведений.

    Снимок экрана, на котором показан узел

  8. Выберите раскрывающийся список, который отображается в данный момент ОК, а затем в всплывающем списке отмените выбор ОК и нажмите кнопку "Продолжить". Это добавит кнопку "Продолжить " в диалоговое окно сведений, которое пользователь может щелкнуть, чтобы закрыть диалоговое окно после завершения чтения сообщения.

    Снимок экрана, на котором показан узел

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

  1. В редакторе Unity сохраните проект и нажмите кнопку "Редактор Unity Play".

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

  3. Путь к кнопке. В определенный момент кнопка перестает поворачиваться, сигналируя о том, что теперь ее можно выбрать.

  4. Выберите кнопку . Откроется диалоговое окно сведений и отображается сообщение, которое вы добавили в узел "Показать диалоговое окно ".

    Примечание.

    Внешний вид диалогового окна сведений в режиме воспроизведения отличается от того, как он будет отображаться в Сетке, где он будет отображаться так же, как и другие панели в Sphere Terrace.

  5. Завершив работу с диалогом сведений, нажмите кнопку "Продолжить ". Обратите внимание, что после нажатия кнопки она исчезнет. Чтобы снова использовать кнопку, необходимо выйти, а затем повторно ввести режим воспроизведения.

    Совет

    Расстояние и триггеры элементов, действующие здесь, определяются компонентами Приложения ProximityDetector GameObject.

    Снимок экрана, на котором показана функция

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

Станция 3.3: телепорт на генератор турбины

Для этой функции мы добавим некоторые узлы в граф скриптов, который позволяет участникам в сцене телепортировать. Когда участник нажимает кнопку, они перенаправляемые из текущего расположения на станции 3.3 на платформу с повышенными привилегиями, подключенную к генератору ветряной турбины. Затем они могут проверить генератор.

Рисунок, содержащий открытый, текст, снимок экрана, описание ветряной мельницы, автоматически созданное

Обновление графа скриптов

  1. В окне сцены обратите внимание, что 3.3 — телепорт на станцию турбины находится справа от станции триггера диалога сведений 3.2. Настройте представление, чтобы вы могли четко видеть станцию 3.3.

  2. В иерархии свернуть 3.2 — диалоговое окно "Info GameObject", а затем разверните узел 3.3 — Teleport GameObject.

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

    Кнопка настроена для вас---we просто нужно добавить узлы в граф скриптов, которые дают ему поведение телепорта.

  3. В иерархии разверните главу GameObject и выберите TeleportToWindTurbineButton GameObject.

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

    Обратите внимание, что в инспекторе есть компонент "Компьютер скрипта" с именем Teleport to Location с присоединенным скриптом TeleportToLocationButtonStart. Параметр Source имеет значение Graph, то есть граф скриптов хранится в проекте в виде независимого файла.

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

  4. Нажмите кнопку "Изменить граф ". Как и в предыдущей главе, наш граф уже имеет некоторые узлы, настроенные для вас.

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

Мы добавим узлы в этот граф скриптов в данный момент.

Создайте точку путешествия и добавьте в нее ссылку

Итак, что такое "Точка путешествия", вы можете спросить ... В основном это компонент, который можно использовать для определения точки в пространстве для создания или телепорта. Как правило, сначала вы создадите группу путешествий, а затем добавьте в нее одну или несколько точек путешествий. Мы уже создали группу путешествий для вас в этом проекте, поэтому в приведенных ниже шагах мы добавим точку путешествия в эту группу. Затем мы будем использовать эту точку путешествия в качестве расположения аватара, к которому он перейдет, когда он нажимает кнопку телепорта . Дополнительные сведения см. в нашей статье с именем Create avatar spawn and teleport points.

  1. В иерархии создайте пустой GameObject в качестве дочернего объекта в TravelGroup, а затем переименуйте его в TeleportLocationWindTurbine.

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

  2. В инспекторе нажмите кнопку "Добавить компонент", а затем найдите и добавьте компонент точки путешествия.

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

  3. В инспекторе в компоненте преобразования введите следующие значения:

    Position (Положение):

    X = 6
    Y = 56
    Z = 60

    Rotation (Поворот):

    X = 0
    Y = 255
    Z = 0

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

    Аватар будет телепортировать в это расположение.

  4. В инспекторе сделайте приложение TeleportLocationWindTurbine GameObject неактивным, отменив флажок рядом с его именем. Если у вас есть несколько объектов TravelPoint, активная во время выполнения, Unity случайным образом выбирает одну из активных точек путешествия в качестве точки спада для аватара. Мы хотим убедиться, что аватар порождается в точке, указанной TeleportLocationChapter3 GameObject, чтобы быть единственной активной точкой путешествия. В результате неактивного действия TeleportLocationWindTurbine отображается неактивным в иерархии.

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

Создание и добавление переменной объекта teleport Location

  1. В блоке "Граф скриптов" создайте переменную объекта: введите имя "TeleportLocation" в поле "Новое имя переменной", а затем нажмите кнопку "+".

  2. Задайте для типа переменной объекта значение Game Object.

  3. Из иерархии перетащите объект TeleportLocationWindTurbine GameObject, а затем удалите его в поле "Значение" новой переменной.

    ________________

  4. Перетащите переменную объекта Button из доски, а затем удалите ее в графе скриптов, чтобы добавить ее в качестве узла. Поместите его под узлом If .

    ________________

Добавление узлов телепорта

  1. Перетащите соединитель из порта элемента управления "True" узла If , а затем создайте новый узел с именем Game Object: Set Active. (В нечетком поиске найдите параметр "Активный".)

  2. Перетащите соединитель из порта вывода данных узла Get Object Variable: TeleportLocation , а затем подключите его к первому порту ввода данных объекта игры: задать активный узел.

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

  3. Выберите параметр "Значение" узла, чтобы сделать его активным.

Добавление узла "Точка путешествия"

  1. Перетащите соединитель из порта вывода элемента управления объекта игры: установите активный узел, а затем создайте новый узел с именем Travel Point: Travel to Point. (В нечетком поиске найдите точку путешествия: путешествие.)

  2. Перетащите соединитель из порта вывода данных узла Get Object Variable: TeleportLocation , а затем подключите его к порту ввода данных узла "Точка перемещения: перемещение в точку ".

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

Это завершает граф.

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

  1. В редакторе Unity сохраните проект и нажмите кнопку "Редактор Unity Play".

  2. Перейдите на станцию 3.3, а затем нажмите кнопку Телепорта , чтобы телепортировать до генератора ветряной турбины.

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

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

  3. В поле сведений о генераторе 3.3 нажмите кнопку "Показать и скрыть генератор". Окно открывается в стороне ветряной турбины, и вы можете увидеть генератор внутри.

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

Вы можете приступить к генератору и посмотреть. Это довольно круто! Когда вы закончите, вернитесь назад, а затем нажмите кнопку "Показать/скрыть генератор ". Это закрывает окно.

Перейти к главе 4

На этом этапе участники в опыте будут готовы перейти к главе 4 и узнать о деятельности ветровой турбины, связанной с физикой. Как и в главе 3, есть терраса Sphere, которая содержит станции для главы 4. Чтобы открыть его:

  1. Повернуть вокруг в противоположном направлении от генератора ветряной турбины и перейти к 3,3 - Перейдите в поле сведений 4 главы 4 .

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

  2. Нажмите кнопку Телепорта к главе 4 .

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

    Как было объявлено, это помещает аватар перед станциями для главы 4 и сетки физики.

    Рисунок, содержащий текст, снимок экрана, мультимедийное программное обеспечение, описание графического программного обеспечения, автоматически созданное

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

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

  1. Нажмите кнопку, которая приводит к воспроизведению видео о ветряных турбинах.

  2. Нажмите кнопку, которая активирует отображение диалогового окна сведений о ветряных турбинах.

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

Следующие шаги