OncollisionEnter не работает
-
27-10-2019 - |
Вопрос
У меня есть проблема с моей функцией OncollisionEnter в Unity3D. Дело в том, что у меня есть контроллер третьего человека, который, если столкнуться с буджевым объектом, должен активировать другой GameObject и этикетку.
Вот как я дал свой код
function OnCollisionEnter(collision : Collision)
{
if(collision.gameobject1.tag=="tag1")
{
// activate game object and label
}
if(collision.gameobject2.tag=="tag2")
{
// deactivate game object and label
}
}
Проблема в том, что в том, что я входит в петли, и я не знаю, неправильно ли то, что я дал, или то, как я дал. Где я ошибаюсь?
Решение
Если событие OncollisionEnter запускается (вы можете добавить печать, чтобы убедиться), то есть две вещи, которые нужно проверить: теги и коллайдеры
Теги
Пытаться
collision.transform.tag
Также убедитесь, что вы выбрали правильный тег для GameObject.
Коллайдеры
В Unity3d обратные вызовы столкновения (OncollisionEnter и т. Д.) Происходят только при определенных обстоятельствах. Пример: GameObject (GameObject1) с компонентом коллайдера и жесткого тела будет столкнуться со статическим (не движущимся) GameObject (GameObject2), который просто имеет коллайдер.
Я бы посмотрел на Ссылка на Box Collider потому что внизу Матрица действия столкновения Это объясняет в каких условиях столкновения происходят.