> For the complete documentation index, see [llms.txt](https://lahmeneffaa.gitbook.io/nto.game.vr/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lahmeneffaa.gitbook.io/nto.game.vr/ar/modul-4.-sdk-unity-i-populyarnye-freimvorki-ispolzuemye-dlya-razrabotki-i-prilozhenii-ar/podklyuchenie-skriptov-i-vzaimodeistvie-s-ui-izmenenie-povedeniya-pri-raspoznavanii-obekta.md).

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

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

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

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

![](https://lh4.googleusercontent.com/0ov1KA_CEyApaveF3PmyW5z72DzdKm_LF0GLRDgkX5o0O-_5dgrsUpyOMVLqZbPphwfk1A7X9WV5CpUUL-RbShmMjMpkYnmC-rfzZ_lW_npzBP9DeAYbt159oXLBVUmXKLh_X50P)<br>

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

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

![](https://lh5.googleusercontent.com/Lz21QiHFeFbQtrKEfCR7WNBFprhdNPXzklGVRL3EtbN3PuBwJ1zvsGQ3PIvlGDR7DK17rT5f16dHfAn0aR20MsxIYieCOZ5TADARX2cWU-Py7RvVdgHUtfKNxiYmafx-71gCjmx-)

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

**Объект Chef**&#x20;

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

![](https://lh5.googleusercontent.com/3eZ2zIqnsX-gqkQgQjKNIkySYF1RiwdFYoutyVt3jZVUjq8mzhxa-ukBZOV0ZSKSkaSJiEvis7RIdrNSNpqIXOPXiBF88iaPnhDbsJrjmvOMS-XqLXQ1SHkaB25axRBdzVK1-wiz)

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

**Объект ScorePanel**

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

![](https://lh4.googleusercontent.com/seFTH0qIxhPaD1OD7dJkPURjdVM_xzxqX1JPC8CPe4qArqi6WEyq39tKHDYMqrNjDROMWU-K403mcdAbZUzn_OlUdkc4zTBgVaWgWT6uArKNylkMxlvWWbWFofxwMEzQCb_rvGSa)

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

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

.![](https://lh6.googleusercontent.com/b-6aoq1Bb4GHmrp_vXrzwDd8Yiua8_RJ-l_JS_YY6Pa1Bi_30jYbb9eWulLKGd3lRZ8NCfNp0_kTrb0GsmOMl1FgZ46AWrm4SaJ9XZFTIGG2ZdctfaGJJ3DVQVdCTuZIFGISBNB4)

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

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

![](https://lh3.googleusercontent.com/RN7VDXzD_iv6u7Ovviw4m5DA4XVVEVTS3-ZEd9Tvcvr0DAK5Fbgpxd_lyt-EUvNNPcV1Zv3N7WdptSQkr6VUWqQVk9Di4szB7W1ueeoR3hgBW9Pt3IfdvVXls4F4qAsmDJDg_UEH)

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

**Настройка событий​.**&#x20;

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

![](https://lh3.googleusercontent.com/_6tGMfJLlgq910rw7RGR_jUeZjm_O-nqWaFqQHElB0dkis4b7rllgKze6q8YNXlKk2XsNFoEf6r8ZC-w48lM7dtiLkBl7KHgyrMgs02XExIeRsUX6w69Ptnz1BaowgBAWpr-wWQz)<br>

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

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

![](https://lh6.googleusercontent.com/Ew3ni_iRVHQHPYYgVt81NjGnf7xyY71zy6xkf24Y0PHzbviDZtVd4LL5in7FkXz2uuKHk5Sihg-P79JjuF4uBAy3Nu8-RM7RtxlKmlwcZqjPB3aq6JI5vTlyYP-YZaDF6YjwdX0-)<br>

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

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

![](https://lh5.googleusercontent.com/t4Tezd8o2o7OddKN8e_JaTy6430ECFHCqJo0GxDtuCZOg6aVZmOeZAK6vezGpfm1chbDgpUiDXxAlm7gJgwOrHRLj1L454RF5VaXwF82oIDm2voVxT8H_Y9fsj9wbrGA5BikukLp)

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

![](https://lh3.googleusercontent.com/uGYGMGXNpvWXOgwCR6me9s0paCS7QaJa4yEB-FQkx0oaMTL5uB2k4rV-Rqas2aq0l4q4OWpLWfi2DVv-wf0_K2n_tAIkuA0Qng6v1HeGuy_CBNDQk9Z4HhKRQOivWQSZ9dNHDRVp)

Рис.10 Работа с окном OnGameRestart&#x20;

**Объект CompleteOrderButton**

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

![](https://lh6.googleusercontent.com/hA28AJmr9bI6kYYM3Kk8L5-azwpAZQu31SSga-s6wEeS70Btj3yG_TuPtK_NZCoimfNWIwNyLPOlAlhwswoJZCUDQqnTT-D7zvz-8MhnflkEgFvZe5C7v6stuiQbx0cVn4V_P1B1)

Рис.11 Работа с CompleteOrderButton<br>

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

![](https://lh5.googleusercontent.com/ueOFysV6ZR6kZFnQcfg6HUp7ffb24p7i1sJGah9xyHrLELfgsvq1xFg0xCwIkK8ETmv1OLb6j315O24Nd3dDWhlFs2hr5MaCSeOX7KKV3LLc1qcP-LjG_OBlHdarsDScPeTx_LHw)

Рис.12 Работа с GameManager.RestartGame <br>

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

![](https://lh3.googleusercontent.com/maXYLpNTbgzmgQwV-eMmN6jD4HGovfCxjjMvNTty1ZoJxvRKwQvD8L3ZAIOJt2P_1KjM_UkvaqW-DM-ZRdALAZ0QeIpol99EXaCbu_NuZi90XG-wbMCxT8oNt-7x7jn60Gzjn0ZB)<br>

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

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

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

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

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

Bon Appitite!

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

1. Unity User Manual \[Электронный ресурс] // Официальная страница Unity.– URL:[https://docs.unity3d.com/Manual/index.html](https://www.blender.org/support/tutorials/).
2. Официальная страница Unity ([https://unity.com/ru](https://www.blender.org/)).
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>.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://lahmeneffaa.gitbook.io/nto.game.vr/ar/modul-4.-sdk-unity-i-populyarnye-freimvorki-ispolzuemye-dlya-razrabotki-i-prilozhenii-ar/podklyuchenie-skriptov-i-vzaimodeistvie-s-ui-izmenenie-povedeniya-pri-raspoznavanii-obekta.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
