Подключение скриптов и взаимодействие с UI, изменение поведения при распознавании объекта

Ключевые слова: инспектор, событие, скрипт, отслеживание таргета

Подключение скриптов

Кнопки для топпингов. Объект Toggle – Peperoni: в окнo OnValueChanged () перетащим Peperoni(3d модель), выберем GameObject.SetActive, поставим галочку (Рис. 1).

Рис.1 Создание события

Модель Peperoni: Рядом с именем снимем галочку. Тоже самое сделаем с двумя оставшимися кнопками (Рис. 2).

Рис.2 Снятие галочки

Объект Chef

Перетащим Chef скрипт в инспектор (его мы ранее импортировали в папку Assets). Также перетащим в поле Speech Bubble объект Text (Panel->Image->Text) из иерархии (Рис. 3).

Рис.3 Подключение скрипта Chef

Объект ScorePanel

Перетащим ScorePanel скрипт в инспектор. Заполним поля, перетащим в поле Final Score Panel объект FinalScore (Panel->ScorePanel->FinalScore) из иерархии, в поле Final Score Text объект FinalScore (Panel->ScorePanel->FinalScore-> FinalScore) (Рис. 4).

Рис.4 Подключение скрипта Score Panel

Заполним массив Score Stars: откроем выпадающий список и в поле Size напишем 5 — это размер нашего массива, затем по очереди перенесем в массив игровые объекты наших звезд, которые находятся в Canvas -> ScorePanel -> Score (Рис. 5).

Рис.5 Заполнение массива

Создаем пустой объект в иерархии, перетащим GameManager скрипт в инспектор, переименуем GameObject -> GameManager. Заполним поля: перетащим в поле Pizza объект Pizza из иерархии, соответственно в поле Peperoni – Peperoni (объект, вложенный в объект Pizza), Pineapple – Pineapple(объект) и Mushroom – Mushroom(объект), в поле Timer перетащим Text (Рис. 6).

Рис.6 Заполнение GameManager

Настройка событий​.

В окнo OnNewOrderCreated() перетащим Chef, выбираем Chef.OrderCreated (Рис. 7).

Рис.7 Событие Chef.OrderCreated

В окнo OnOrderComplete() перетащим ScorePanel, выберем ScorePanel.ScoreRound, нажмем на "+", появится окно для нового элемента, перетащим Toggle - Peperoni, выберем Toggle.isOn. Тоже самое делаем с Toggle - Pineapple и Toggle – Mushroom (Рис. 8).

Рис.8 Заполнение события для топпингов

В окнo OnGameComplete() перетащим ScorePanel, выберем ScorePanel.FinalScore. Очень важно при выборе методов объекта ScorePanel, выбирать из Dynamic int, если выберем Static Patameters, то ничего не будет работать (Рис. 9).

Рис.9 Событие ScorePanelВ окнo OnGameRestart () перетащим ScorePanel, выберем GameObject.SetActive, нажмем на "+", появится окно для нового элемента, перетащим FinalScore, выберем GameObject.SetActive, добавим новый элемент: перетащим Toggle - Peperoni, выберем Toggle.isOn. Тоже самое сделаем с Toggle - Pineapple и Toggle – Mushroom (Рис. 10).

Рис.10 Работа с окном OnGameRestart

Объект CompleteOrderButton

В инспекторе в окнo OnClick() перетащим GameManager, выберем GameManager.CompleteOrder (Рис. 11).

Рис.11 Работа с CompleteOrderButton

Объект Button(Panel->ScorePanel->FinalScore->Button): в окнo OnClick() перетащим GameManager, выберем GameManager.RestartGame (Рис. 12).

Рис.12 Работа с GameManager.RestartGame

Чтобы происходила магия, и наш заказ сдавался при исчезновении маркера. Надо удалить компонент Default Trackable Event Handler и добавить компонент Pizza Trackable Event Handler. Объект ImageTarget: в окнo OnTrackingLostEvent() перетащим GameManager, выберем GameManager.CompleteOrder (Рис. 13).

Рис.13 Настройка события при исчезновении маркера

Default Trackable Event Handler отвечает за отслеживание таргетов. В нем есть два ключевых метода:

  • OnTrackingLost(), прекращение отслеживания.

  • OnTrackingFound(), возобновление отслеживания.

Это самый простой пример использования Vuforia API.

На этом со скриптами все, можно запустить проект.

Bon Appitite!

Список использованных источников и литературы

  1. Unity User Manual [Электронный ресурс] // Официальная страница Unity.– URL:https://docs.unity3d.com/Manual/index.html.

  2. Официальная страница Unity (https://unity.com/ru).

  3. Ben MacKinnon How to Make an AR Game Using Vuforia [Электронный ресурс] // Сайт raywenderlich. – URL: https://www.raywenderlich.com/6120-how-to-make-an-ar-game-using-vuforia.

Last updated