@yraiv

Почему не работает проверка на столкновение объектов?

2д игра. Хочу запретить ставить объекты друг на друга. После того, как человек покупает объект, то он двигается вслед за курсором, пока мышка зажата, а когда отпускает, то оставляет его там, но! Я хочу, чтоб нельзя было их ставить друг на друга и тут проблема. Решил сделать так, но не работает ничего
void OnTriggerEnter2D(Collider2D collider)
    {
        if (collider.gameObject.tag == "Towers")
        {
            Destroy(TowerPistol);
        }
    }
  • Вопрос задан
  • 252 просмотра
Решения вопроса 1
@Ezekiel4
Охотник на пиратов и сборщик монолитов
Чек-лист, что стоит проверить:
1. Висит ли подходящий тег на объекте?
2. Есть ли на объекте коллайдер?
3. Включена ли галочка isTrigger хотя бы на одном из двух коллайдеров? (т.к. OnTriggerEnter2D)
4. Находятся ли коллайдеры в одной плоскости (обычно, Z)?
5. Висит ли скрипт, фрагмент из которого указан в коде выше, на объекте, который ставится?
6. Не хранится ли в ссылке TowerPistol null?
7. Является ли ссылка (TowerPistol) корректной ссылкой на нужный объект?

Если на объекте висит Rigidbody, можете попробовать поменять Collision Detection на Interpolate.

Если всё проверено, а проблема осталась, попробуйте изменить метод OnTriggerEnter2D на OnTriggerStay2D.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы