@copyandpast
кодер

Почему события при контакте с триггером в Unity 2d плывут?

Часов 6 уже торчу на месте.
void OnTriggerEnter2D(Collider2D other)
    {
        string a = other.gameObject.tag;
        switch (a)
        {
            case "Right":
                Debug.Log("Right answer");
                break;
            case "NotRight":
                Debug.Log("Not right answer");
                break;
        }
        
    }

У меня есть объект с триггером, и если его касаются другие объекты, то нужно вывести результат в консоль. (Right answer/Not right answer). Но все плывет при касании, если это объект с тегом "Right" то в консоли дважды пишется, что правильный вариант, а если это объект с тегом "NotRight", то в консоли одновременно возникает два сообщения - что вариант правильный, и то что он не правильный. Теги к объектам присвоил, сделал главный объект триггером через box collider, уже и под if-ы переписывал, и пробовал какую то левую функцию Compare.Tag, RigidBody вроде тоже есть - везде один результат. Почему они вместе выполняются и что это вообще за хрень ?
  • Вопрос задан
  • 366 просмотров
Пригласить эксперта
Ответы на вопрос 1
MrMureno
@MrMureno Куратор тега Unity
VR for all
звучит все как будто у вас там не один один объект касается триггера, а целая пачка.

сделайте мини сцену. где ТОЛЬКО ОДИН триггер и ТОЛЬКО ОДИН объект, который его коснется и НИКАКИХ лишних скриптов и логики.

убедитесь что все это работает, а потом смотрите чего у вас не так в сцене было (может отключаете включаете объект, может создаете объекты где то или еще что-то подобное, заставляющее триггер реагировать)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы