> 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/dobavlenie-elementov-ui.-chast-3.md).

# Добавление элементов UI. Часть 3

**Ключевые слова:** *UI, кнопки, спрайты, toggle, panel, якорь*

### **Разработка интерфейса(UI)**

Первым делом создадим папку "UI" для хранения элементов интерфейса ( в директории Assets). Перенесем туда выданные заготовки (Рис. 1).&#x20;

<br>

![](https://i.postimg.cc/Z5sMBB01/2022-04-28-183503.jpg)

Рис. 1 Будущие элементы интерфейса​

Для того, чтобы сохранить прозрачность фона изображений, выделим их все и, в меню инспектора, переключим Texture Type на Sprite (2D and UI). Не забываем нажать Apply.

В меню иерархии создадим UI -> Canvas (то, что отображается на экране пользователя). Перейдем в 2D режим (иконка в меню сцены). Внутри canvas создадим UI -> Panel. На этой панели будут храниться все элементы интерфейса, по умолчанию она будет растянута на весь Canvas, пометайте цвет panel на прозрачный: компонент Image, свойство Color. Все размеры в этом мастер-классе будут адаптированы под разрешение 1920х1080.

**Добавляем кнопки вкл/выкл(Toggle) для ингредиентов пиццы.**\
Нажмем ПКМ на Panel UI->Toggle. Назовем кнопку Toggle - Peperoni. Добавим компонент Image для объекта Toggle, для этого нажмем Add Component и в поиске наберем Image. Перетащим спрайт peperoni в свойство Source Image. Теперь установим ширину и высоту: width, height=140.&#x20;

Перетащим вложенный объект Checkmark(Toggle->Background-> Checkmark) в Toggle, удалим Label и Background. Далее установим у объекта Checkmark значение свойства Image, как в предыдущем шаге и перетащим в Source Image, но в этот раз не peperoni , а peperoni\_select. Далее установим высоту и ширину 140 и обнулим положение по осям. Сдвинем к правому краю и поставим якорь на middle-right, компонент rect transform. Переименуем Toggle->Toggle - Peperoni и chechmark->Image (Рис. 2). <br>

![](https://lh3.googleusercontent.com/R8TZ9Zq78ZkNdSh9N8CQUnLlS2cKDfrE3WMzNrjm9aoUWhxTHpflSyfTKBM0azkTZ1xNbub2v70nv9VBcsOPQq021LZ6gXlcWuGcss10VjFpo0jqMHMSg2Ye9wQzkGq8Jhzi_0NU)

Рис. 2 Расположение интерфейсных кнопок

Так же сделаем кнопки Toggle – Pineapple, Toggle – Mushroom. Создадим пустой объект, назовем его Toppings и положим в него кнопки, которые  только что сделали (Рис. 3).  <br>

![](https://i.postimg.cc/CLNHPRTd/2022-04-28-185819.jpg)

Рис. 3 Кнопки интерфейса<br>

**Создание кнопки завершения заказа.**<br>

Создадим кнопку в Panel, кликнем ПКМ UI->Button. Удалим дочерний объект Text. Переименуем Button->CompleteOrderButton, перенесем спрайт bell, установим размеры 170х170, перетащим в нижний правый угол, установим якорь на этот угол(bottom-right) (Рис. 4).

<br>

![](https://lh3.googleusercontent.com/SERnhItkZx1dsj9eartGZsSU1hEHnRFeQxjtXprAkGMhidnhd-5YxP9h1Bh-L9sXYgIS3sPzJMt4UkgBW0kcOoJQjjmpJleyQDtyFM9_8MtsRvX61NIqVbbKwVUOx_Ns0-PNlQ4L)

Рис. 4 Complete Order Button

**Создание таймера.**<br>

Создадим пустой объект в Panel. Выставим якорь на верхний правый угол(top-right), переименуем Gameobject->Timer. Внутри создадим текст: нажмем ПКМ, UI->Text переименуем в TimerText, установим шрифт в 82 пункта, выравнивание по центру, ширина и высота поля равна 100. В компоненте Text, свойстве Text пишем 60 (Рис. 5).&#x20;

![](https://lh3.googleusercontent.com/g4Ck9kwGz3K5SfogG47y-y2u8S5y7cND6bv0mxnc_CK9cfPXfYt__9Jnkw-8z_Iev5jg0Wn3guHfytjxUiFcXQ6EW8kQl6yYiiV0_wToYuAiITxHhjhtyMYdLuw3ha95SwhIxlia)

Рис. 5 Timer<br>

**Создание шеф-повара.**\
Создадим пустой объект в Panel. Установим якорь на нижний левый угол(bottom-left), перетащим в этот угол, переименуем Gameobject->Chef, установим высоту на 200 и ширину на 160 (Рис. 6).&#x20;

![](https://lh3.googleusercontent.com/5iDt5rte0GSecYsdoviR02FjQKZ9QxmzLFcXjC1MUwX8ptmOae9nwRKG4YF_tzhe3gyJANvWOuWLIslqVxMbpSMnD0MjyK0R46ci_xH5xuJCxmpTckmQe22tIIHNvIw7PQ-T6IJa)<br>

Рис. 6 Chef<br>

Внутри создадим картинку: нажмем ПКМ UI->Image, переведем картинку шефа в спрайт и перетащим готовый спрайт на Image(компонент Image, свойство Image Source) (Image должен быть дочерним объектом для Chef) (Рис. 7).&#x20;

![](https://lh3.googleusercontent.com/O32Pt5Tgg1OQqBGvDj8x4b2-Ert4y6anXb99U6H8n4hMdkTQjz1cnEF5t-JLVtOjMVjYR5ZhqrjXfMFJpKgaC-0MIAfPuCG7iRGfkrdfF6UfBOCCUsrtUD0S2OVTT9GU9FC0LRQc)

Рис. 7 Картинка шефа

**Создание заданий от шеф-повара.**\
Создадим внутри Panel картинку, кликнем ПКМ, UI->Image, перетащим на нее спрайт speech\_bubbles, изменим размер: ширина 350 и высота 300, так же установим якорь на нижний левый угол и перетащим к повару (Рис. 8).&#x20;

![](https://lh3.googleusercontent.com/3TKPM6s73xBWO8C7_jO2uxmQBQQG9Y-_ZTE1TfKSjFXZZDMBKR1XulM2PWmWuvotpGva0inan_5U-RcCgidChEvLWASbtKOyvi_3oP2LunswFlqq51wM6YnIxmpgeD0B4wxOw3QS)<br>

Рис. 8 Облако заданий<br>

В Image создадим Text и нажмем ПКМ UI->Text, ширина 290 и высота 110; в поле Text в будущем будет текст того, какая пицца нам нужна. Также если мы хотим, чтобы текст был адаптивным, можно добавить компонент Content Size Fitter, и установить у свойств Horizontal Fit и Vertical Fit значение Unconstrained (Рис. 9).&#x20;

![](https://lh6.googleusercontent.com/I6Kp9GwNu4u_O9ftn-Wf4qGK9wQyh4a89v2nwBSXlE7YHzSpKyxe2WXeqsFoNE59rab1HUJHW0X8g2XVauvwwrW9WKv_pvYaimHczCHdcnwURw8n7Bs0eGpUgZ_VHwgBW1Gn6oOg)

Рис. 9 Поле для текста<br>

**Создание окна с очками за игру.**<br>

Создадим внутри Panel новую панель: нажмем ПКМ UI->Panel, изменим размер – ширина 500 и высота 200, переименуем Panel -> ScorePanel. Внутри создадим Text и 2 пустых объекта (Рис. 10).&#x20;

<br>

![](https://lh5.googleusercontent.com/c0LiKzhVre2ApcdJTljUxkhi8hly-H8F-wwUqxuPbPhGk3IsFJY3iRDzfJHdCPHbKgKr2LvuuCQRXBIZ8rAJ0drKKWsHaEIU6mWnizX5glQOI-fAfaJLt_jF9VVOt2ztnmRU_-Xb)

Рис. 10 Окно с баллами

Объект Text: компонент Text свойство Text напишем «Прекрасно!», поднимем вверх окна, ширина 400, высота 70, выравнивание по центру, шрифт 50 пунктов (Рис. 11).&#x20;

![](https://lh6.googleusercontent.com/-GSiluFqGs3Pc1BIhdWSkvSchVPpende7ZQvEeCLUPzYmbZqkGOAZHWg46gt-C4WorG5m0sQ-uMqTqPZi7wriUAILHMCxnYX3ewnJijhMm4OYmbzZQd41jv94rXBMW-YP1ohKff6)

Рис. 11 Параметры текстового поля

Один из пустых объектов переименуем: GameObject->Score, внутри создаем объект Image. Перетащим спрайт star на Image, размер 100х100. Точно так же добавим еще 4 звезды и выстроим их в ряд (Рис. 12). <br>

![](https://lh4.googleusercontent.com/L8fJQNnH3zC_H2KPjaVwOVJmNtgD5CProxiy3QN927UU16SDMcoYgSS6zsHrPaOu1K8LJkBWzYWylMuyg_Q6-qsRY-JMFvYMjmdsrQVWUdwnm5p6Vz_-TrJk9CBF1A9ONyW_zXhP)

Рис. 12 Параметры для звездочек

Оставшийся из пустых объектов переименуем: GameObject -> FinalScore. Внутри создадим Button кликнем ПКМ UI->Button и Text нажмем ПКМ UI->Text. Объект Text: переименуем GameObject->FinalScore, выровняем по центру, размер шрифта 24 пункта (Рис. 13).&#x20;

![](https://lh6.googleusercontent.com/n4iey6FOt-FIRKXyaN9Tensr6X9Vv6_I31YCfGWITWDMSpmuM0cNEjvV_ddOBFds1qxMmtL8pYnMtAFVHIm2NRoJpcFv3wy3q2tbJKMIPUFqy0wCmbqzUywp1TfO9AoUWHkv2woE)

Рис. 13 Параметры для финального текста<br>

Объект Button: изменим размер: ширина, высота = 200, -70. В дочернем объекте Text, в компоненте Text, в свойстве Text напишем «Новая игра». Установим размер шрифта на 16 пунктов.

&#x20;Результат:&#x20;

![](https://lh5.googleusercontent.com/v47Moy312ifoyHAlaabwg3tqDzzRH3hARW72u-KGAEcYH6EbV31mg8Whlkk6sAbj09N212861SqEkfIT5wAslt04XMeq003qPZ_uNjKxNWKzPtwsfRkcU5FyhZBo_HXVF9HhhR4G)

Рис. 14 UI приложения<br>

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

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>.

<br>
