Не проходит коллизия в unity 2d,почему? Пишу скрипт врага в игре Есть объект при столкновении с другим объектом с тегом gamma он должен уничтожиться,но этого не происходит хотя код верный. Но если навесить этот объект на персонажа,или присвоить этому персонажу тэг gamma то всё работает прекрасно подскажите в чём причина,уже всё перепробовал. Персонаж если,что в префабе,если это важно. private void OnCollisionEnter2D(Collision2D collision) { if (collision.collider.CompareTag("gamma")) { Destroy(gameObject); } }

26 Сен 2021 в 19:58
145 +1
0
Ответы
1

Проблема, скорее всего, заключается в том, что у врага нет компонента Collider2D. У врага должен быть Collider2D для того, чтобы срабатывал метод OnCollisionEnter2D.

Убедитесь, что у вашего врага есть компонент Collider2D (BoxCollider2D, CircleCollider2D и т.д.) и что у объекта, с которым враг сталкивается, правильно прописан тег "gamma".

Если у вас все правильно настроено, но коллизия все равно не происходит, попробуйте использовать метод OnTriggerEnter2D вместо OnCollisionEnter2D.

Примерно так:

private void OnTriggerEnter2D(Collider2D other) {
if (other.CompareTag("gamma")) {
Destroy(gameObject);
}
}

Если после этих действий проблема не решится, попробуйте проверить настройки слоев и коллайдеров в Unity, возможно, что-то там мешает корректному срабатыванию коллизии.

17 Апр в 10:59
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 588 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир