Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
OnCollisionEnter і OnTriggerEnter | Unity Фізика
Unity для початківців
course content

Зміст курсу

Unity для початківців

Unity для початківців

1. Вступ до Unity
2. Напишіть свій перший скрипт
3. Unity Фізика
4. Unity UI та Звуки
5. Полірування та експорт вашої гри

book
OnCollisionEnter і OnTriggerEnter

OnCollisionEnter2D:

Використання: Цей метод викликається, коли 2D колайдер, прикріплений до GameObject, до якого прикріплений цей скрипт, зіштовхується з іншим колайдером у сцені, і принаймні один з колайдерів має прикріплений Rigidbody2D.

Тригер: Цей метод в основному використовується для обробки фізичних зіткнень, коли об'єкти фактично "стикаються" один з одним.

Приклад сценарію: Уявіть, що у вас є гра з персонажем, який стрибає і приземляється на платформи. Коли персонаж приземляється на платформу, ви можете захотіти відтворити звук приземлення, змінити анімацію персонажа або викликати іншу дію. Ви б використовували OnCollisionEnter2D, щоб виявити, коли колайдер персонажа зіштовхується з колайдером платформи.

OnTriggerEnter2D:

Використання: Цей метод викликається, коли 2D колайдер, прикріплений до GameObject, до якого прикріплений цей скрипт, перекривається з іншим колайдером у сцені, і принаймні один з колайдерів має увімкнену властивість "Is Trigger".

Тригер: На відміну від OnCollisionEnter2D, цей метод не стосується фізичних зіткнень, а скоріше виявлення, коли один об'єкт входить у простір іншого без обов'язкового зупинення їх руху. Подумайте про це, як про проходження через двері без фізичного їх відкриття.

Приклад сценарію: Припустимо, у вас є гра, де гравець збирає монети. Коли персонаж гравця рухається над монетою, ви хочете збільшити рахунок гравця і зробити монету невидимою. Ви б використовували OnTriggerEnter2D, щоб виявити, коли колайдер гравця перекривається з колайдером монети.

Що таке Тег?

Визначення: Тег - це рядкове значення, яке ви можете призначити GameObject в Unity.

Призначення: Теги використовуються для категоризації та ідентифікації GameObjects для різних цілей, таких як розрізнення об'єктів, керованих гравцем, ворогів, колекційних предметів, перешкод тощо.

Загальні використання тегів:

Ідентифікація ігрових об'єктів: Теги зазвичай використовуються для ідентифікації важливих GameObjects у вашій сцені, таких як персонаж гравця, вороги, колекційні предмети, цілі тощо.

Виявлення зіткнень: Теги можуть використовуватися для визначення типу GameObjects, які беруть участь у зіткненнях. Наприклад, ви можете захотіти перевірити, чи зіткнувся гравець з ворогом або колекційним предметом.

Виявлення тригерів: Подібно до виявлення зіткнень, ви можете використовувати теги для ідентифікації GameObjects, які входять у тригерні зони, встановлені у вашій сцені.

Приклад:

Цей метод викликається щоразу, коли відбувається зіткнення між гравцем та іншим GameObject у сцені.

Метод отримує параметр collision типу Collision2D, який містить інформацію про зіткнення.

Він перевіряє, чи тег колайдера, що бере участь у зіткненні, дорівнює "ground".

Якщо умова виконується, він виводить "you lost" у консоль Unity за допомогою Debug.Log().

Цей метод викликається щоразу, коли відбувається перетин тригера між гравцем та іншим GameObject у сцені.

Метод отримує параметр collision типу Collider2D, який містить інформацію про перетин тригера.

Він перевіряє, чи тег колайдера, що викликав тригер, дорівнює "win".

Якщо умова виконується, він виводить "you won" у консоль Unity за допомогою Debug.Log().

1. При використанні OnTriggerEnter2D, яка властивість колайдерів повинна бути встановлена в true для увімкнення виявлення тригера?
2. Який метод слід використовувати для обробки виявлення зіткнень між двома колайдерами, які не є тригерами?
При використанні OnTriggerEnter2D, яка властивість колайдерів повинна бути встановлена в true для увімкнення виявлення тригера?

При використанні OnTriggerEnter2D, яка властивість колайдерів повинна бути встановлена в true для увімкнення виявлення тригера?

Виберіть правильну відповідь

Який метод слід використовувати для обробки виявлення зіткнень між двома колайдерами, які не є тригерами?

Який метод слід використовувати для обробки виявлення зіткнень між двома колайдерами, які не є тригерами?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 4
We're sorry to hear that something went wrong. What happened?
some-alt