Компоненти 3D GameObjects. Курс Unity для митців (6-7 уроки)

Всіх вітаю! Це шостий і сьомий уроки курсу — Unity Essentials (Основи Unity), і продовження другого блоку «Досліджуйте Unity».

Попередні уроки

Курс розроблений компанією Unity, перекладений і адаптований для проєкту «Марсіанський Чайник». Деякі терміни навмисно не перекладені в уроці для того, щоб Вам було легше орієнтуватись у редакторі Unity. Підтримати проєкт можна на сторінці патреон Марсіанський Чайник.

Додайте компоненти до 3D GameObjects

Відеоверсія уроку:

Компоненти додають поведінку та функціональність до GameObject. Поки що ви використовували компонент Transform — і це лише початок! У цьому туторіалі ви додасте інший компонент — Rigidbody, який надає фізичні властивості GameObject, щоб він міг взаємодіяти з гравітацією та іншими ігровими об’єктами. Ви також розташуєте головну камеру, щоб спостерігати, як GameObject реагує на гравітацію в 3D.

Розташуйте падаючий предмет

Давайте створимо GameObject, який впаде на вашу структуру:

1. Створіть новий примітив сфери. Переконайтеся, що він знаходиться на верхньому рівні, а не дочірній до будь-якого іншого GameObject.

2. Перемістіть сферу в просторі так, щоб вона зависла прямо над вашою конструкцією.

Порада: знайдіть Gizmo у верхньому правому куті вікна перегляду сцени та виберіть вісь Y. Це дасть вам вигляд зверху вниз на вашу сцену. Переконайтеся, що ваша сфера знаходиться так, щоб вона падала на вашу конструкцію.

Розташуйте основну камеру (Main Camera)

У кожній новій сцені є Main Camera. Її положення в режимі перегляду сцени позначається значком камери, як показано нижче.

Примітка: Якщо ви не бачите значка камери, як показано вище, переконайтеся, що ваш Gizmos увімкнено. У верхньому правому куті вікна перегляду сцени знайдіть слово Gizmos та увімкніть його (не відкриваючи меню), щоб воно було затінено.

Ця камера знімає та відображає вашу сцену користувачеві у вікні гри (Game view). У той час як Scene view — це місце, де ви створюєте сцени, Game view — це місце, де ви запускаєте свою гру або програму в Unity.

Щоб налаштувати Main Camera для перегляду вашої структури в Game view:

1. У Hierarchy виберіть Main Camera. Ви побачите вікно попереднього перегляду камери, яке показує, як виглядатиме сцена в Game view.

2. У вікні перегляду сцени натисніть F, щоб сфокусуватися на Main Camera.

Камера у вашій сцені — це GameObject. Коли ви виберете його, Ви побачите його компонент Transform у вікні інспектора. Ви можете змінити ці налаштування, як і для будь-якого іншого GameObject.

Примітка: масштабування камери не буде мати ефекту.

3. Переміщайте та повертайте камеру, щоб бачити сферу та структуру під нею.

Порада: Гравці будуть краще орієнтуватися у вашій грі, якщо ви будете тримати горизонт на рівні камери.

4. Коли ви вибираєте камеру, ви бачите контури пірамідної форми (яка називається зрізаним конусом (frustum)), що виходить із камери. Frustum показує вам, яку частину вашої сцени бачить камера. Використовуйте ручки з боків усічення, щоб звузити або розширити огляд.

Порада: Ви також можете перемістити камеру, щоб вирівняти її з поточним виглядом сцени, вибравши її у вікні Hierarchy, а потім натиснувши Ctrl+Shift+F (macOS: Cmd+Shift+F).

Здійснюйте маніпуляції з камерою, поки не отримаєте гарний огляд структури та сфери над нею, як у прикладі нижче.

5. Запустіть програму, щоб відобразити Game view. Ви побачите налаштований вид у попередньому перегляді камери. Більше нічого не станеться, але потім ви надасте кулі нові властивості, щоб вона впала.

Зробіть кулю фізичною

Об’єкти у фізичному світі не зависають у повітрі, але в сцені Unity по дефолту GameObjects не мають маси та не реагують на гравітацію. Щоб GameObject поводився як фізичний об’єкт реального світу, Ви можете надати йому фізичні властивості, додавши компонент Rigidbody.

Щоб додати компонент Rigidbody до GameObject:

1. Виберіть свою сферу.

2. Виберіть Add Component у нижній частині вікна Inspector. З’явиться вікно, у якому можна шукати компоненти.

3. Використовуйте рядок пошуку, щоб знайти Rigidbody та виберіть його.

Примітка: Доступні два варіанти: Rigidbody і Rigidbody 2D. Переконайтеся, що ви вибрали компонент Rigidbody, а не 2D.

4.Запустіть програму. Сфера падає!

Що робить сфера на вашій структурі? Вона котиться по сходах? Вона просто падає на рівну поверхню і зупиняється там? Якщо куля приземлиться на рівній поверхні — вона не покотиться. (Ви додасте невеликий відскок в наступному туторіалі)

5. Щоб відбулося більш цікаве падіння — перемістіть сферу на нове положення і запустіть сцену знов у. Спробуйте «скинути» сферу з кількох різних позицій.

Примітка: Якщо вам цікаво дізнатися більше про фізику в Unity, перегляньте Physics Best Practices для отримання додаткової інформації.

Експериментуйте з падаючими GameObjects

Спробуйте різні варіанти цієї вправи. Перемістіть свою сферу та Main Camera GameObject, щоб отримати бажані результати.

Можна спробувати:

  • Скопіюйте свою сферу та розташуйте дублікати, щоб вони падали з різних висот і місць на вашу конструкцію.
  • Додайте інші примітиви з компонентом Rigidbody і подивіться, як вони себе поведуть.
  • Експериментуйте з властивістю Mass компонента Rigidbody. (Якщо ви зробите сферу дуже важкою, вона не буде так сильно підстрибувати.)

Примітка: Ви можете змінити властивості вибраного GameObject під час запуску гри, але коли гра зупинена, усі значення повернуться до тих, які були до початку гри. Це корисно для перевірки різних параметрів під час тесту, але якщо ви хочете, щоб зміни збереглися, Вам потрібно внести їх, коли гра зупинена.

Фізичні властивості 3D GameObjects

Відеоверсія уроку:

У цьому туторіалі ви надасте GameObjects фізичні властивості, які будуть корисні Вам під час створення власних сцен. Ви додасте колір своїм об’єктам і фізичний матеріал.

Почніть роботу з матеріалами

Матеріали (Materials) — це компоненти, які визначають характеристики поверхні об’єктів. Ви можете створювати прості матеріали, щоб змінити зовнішній вигляд ваших GameObjects. Ви навіть можете застосовувати різні матеріали до різних GameObjects, щоб керувати тим, як виглядають ваші об’єкти.

Звичайною практикою є упорядкування assets різних типів в окремі папки. Щоб створити папку для матеріалів у вашому проекті:

1. За потреби налаштуйте макет вікна проекту (Project window) відповідно наведеному нижче прикладу. Клацніть правою кнопкою миші на вкладку Project window і виберіть вкладку Two Column Layout, якщо вона ще не вибрана. У лівій колонці відображатимуться папки вашого проекту, а в правій — вміст вибраної папки.

2. У вікні Project клацніть правою кнопкою миші на папку Assets і виберіть Create > Folder. Перейменуйте папку на «Materials».

3. У вікні Project двічі клацніть на нову папку «Materials», щоб Ви могли побачити її вміст у правій панелі Two Column Layout.

Створіть однотонний матеріал

Виконайте наведені нижче дії, щоб створити матеріал, який можна використовувати для будь-якого GameObject:

1. У вікні Project відкрийте папку Materials. Клацніть правою кнопкою миші та виберіть Create > Material, щоб додати новий матеріал до цієї папки.

2. Перейменуйте новий матеріал на «SolidBlue».

3. Виберіть матеріал SolidBlue у вікні Project.

4. У вікні Inspector знайдіть властивість Albedo. Ця властивість визначає основний колір матеріалу.

Примітка: для матеріалів у деяких шаблонах Unity 3D ця властивість може називатися Base Map.

5. За допомогою піпетки (color picker) надайте цьому матеріалу синій колір.

6. Щоб зробити будь-який GameObject синім, перетягніть матеріал SolidBlue з вікна Project на будь-який з GameObjects у вашій сцені. Тепер він синій!

7. Застосуйте SolidBlue матеріал до більш ніж одного GameObject та змініть відтінок вашого кольору. Новий синій колір буде замінений усюди, де матеріал вже використовується.

Зробіть скільки завгодно додаткових однотонних матеріалів і нанесіть їх на частини своєї конструкції. Але будьте обережні — не робіть конструкцію занадто барвистою — щоб це не відволікало гравців!

Примітка: Щоб зробити GameObject знову білим — застосуйте матеріал під назвою Default-Material.

Створіть матеріал за допомогою текстурної карти

Карта текстур (texture map) — це файл зображення, наприклад PNG або JPG, який ви застосовуєте до матеріалу. Художники використовують текстури, щоб додати деталей до поверхонь GameObjects.

Щоб створити матеріал із картою текстур і застосувати його до вашої сцени:

1. Завантажте файл Herringbone_Brick_baseColor.png.

2. Щоб імпортувати файл у проект, перетягніть завантажений файл із File Explorer (Windows) або Finder Window (MacOS) безпосередньо в папку Materials у вікні Project.

Примітка: Це швидкий і простий спосіб імпортувати до кількох файлів, але є й інші методи імпорту великих наборів assets. Обов’язково дотримуйтесь інструкцій щодо assets, які ви імпортуєте.

3. У вікні Project відкрийте папку Materials. Клацніть правою кнопкою миші та виберіть Create > Material, щоб додати новий матеріал до цієї папки.

4. Перейменуйте новий матеріал у «BrickMaterial».

5. Виберіть BrickMaterial.

6. У вікні Inspector виберіть засіб вибору об’єкта (значок кола) поруч із властивістю Albedo та виберіть файл текстури Herringbone, який Ви імпортували.

Зображення тепер застосовано до матеріалу як карта Albedo (або Base map) і з’явиться в попередньому перегляді матеріалу в Inspector.

7. Перетягніть матеріал із вікна Project на GameObject у вікні Scene. Цей матеріал добре підходить для підлоги!

8. Щоб змінити масштаб текстури, виберіть матеріал BrickMaterial, а в Inspector змініть властивості Tiling X та Y. Менші цифри роблять цеглини більшими.

Примітка: Переконайтеся, що властивості Tiling X та Y, які ви змінюєте, знаходяться в розділі Main Maps властивостей матеріалу в Inspector, а не в розділі Secondary Maps.

Якщо у вас є власні файли зображень, які створюють хороші текстурні карти, спробуйте застосувати їх до деяких додаткових матеріалів!

Додайте фізичний матеріал (Physic material)

Раніше ви додали компонент Rigidbody до GameObject, щоб надати йому фізичні властивості. Ви також можете додати додаткові фізичні характеристики за допомогою іншого типу матеріалу, який називається Physic material. Physic material — це інший тип матеріалу, який змушує об’єкт відскочити та змінює його властивості тертя та опору. Ці властивості діють, коли об’єкт перебуває під дією сили тяжіння. Фізичні матеріали не змінюють візуальні властивості GameObject.

Щоб створити фізичний матеріал, який змусить GameObjects відскочити:

1. У вікні Project відкрийте папку Materials. Клацніть правою кнопкою миші та виберіть Create > Physic Material.

2. Перейменуйте фізичний матеріал на «Bouncy».

3. Виберіть новий фізичний матеріал.

4. У Inspector змініть значення Bounciness на 1.

5. Виберіть сферу, яка падає у вашій сцені. У вікні Inspector зверніть увагу на компонент Sphere Collider. Компонент коллайдер (collider) автоматично додається, коли ви створюєте тривимірний примітив, такий як ця сфера.

6. Перетягніть новий Bouncy Physic матеріал, який ви створили раніше, у властивість Material компонента Sphere Collider.

7. Поки Ви це робите, надайте своїй кулі колір, використовуючи звичайний матеріал, якщо Ви ще цього не зробили.

8. Запустіть Play mode. Тепер ваша сфера повинна впасти на платформу і трохи підскочити, коли вона приземлиться!

Створіть ще кілька падаючих об’єктів у вашій сцені, використовуючи примітиви сфери, куба, циліндра та капсули, і спробуйте додати до деяких з них матеріал Bouncy Physic. Поки що не робіть занадто багато падаючих об’єктів — це те, що ми зробимо в наступному уроці.

Підписуйтеся на Telegram-канал @gamedev_dou, щоб не пропустити найважливіші статті і новини про геймдев

👍ПодобаєтьсяСподобалось3
До обраногоВ обраному1
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Підписатись на коментарі