Зміст курсу
Unity для початківців
Unity для початківців
OnCollisionEnter і OnTriggerEnter
OnCollisionEnter2D
Usage: This method is called when a 2D collider attached to the GameObject
this script is attached to, collides with another collider in the scene and at least one of the colliders has a Rigidbody2D
attached.
Trigger: This method is mainly used for handling physical collisions, where objects actually "bump" into each other.
Example Scenario: Imagine you have a game with a character that jumps and lands on platforms. When the character lands on a platform, you may want to play a landing sound effect, change the character's animation, or trigger some other action. You would use OnCollisionEnter2D
to detect when the character's collider collides with the platform's collider.
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()
.
1. When using OnTriggerEnter2D
, which property of colliders must be set to true to enable trigger detection?
2. При використанні OnTriggerEnter2D, яка властивість колайдерів повинна бути встановлена в true для увімкнення виявлення тригера?
Дякуємо за ваш відгук!