OnCollisionEnter не работает - PullRequest
       50

OnCollisionEnter не работает

1 голос
/ 11 января 2012

У меня проблема с моей функцией onCollisionEnter в Unity3d.Дело в том, что у меня есть контроллер от третьего лица, который при столкновении с пограничным объектом должен активировать другой игровой объект и метку.

это то, как я дал свой код

function OnCollisionEnter(collision : Collision)
{
   if(collision.gameobject1.tag=="tag1")
   {
     // activate game object and label
   }
   if(collision.gameobject2.tag=="tag2")
   {
      // deactivate game object and label
   }
}

проблема в том, что он входит в оба цикла, и я не знаю, было ли то, что я дал, неправильно или как я это сделал.Куда я иду не так?

Ответы [ 2 ]

3 голосов
/ 11 января 2012

Если происходит событие OnCollisionEnter (вы можете добавить распечатку, чтобы убедиться), то есть две вещи, которые нужно проверить: теги и коллайдеры

Метки

Попробуйте

collision.transform.tag

Также убедитесь, что вы выбрали правильный тег для игрового объекта.

Коллайдеры

В Unity3D обратные вызовы коллизий (onCollisionEnter и т. Д.) Происходят только при определенных обстоятельствах. Пример: игровой объект (gameobject1) с компонентом коллайдера и твердого тела столкнется со статическим (не движущимся) игровым объектом (gameobject2), у которого только есть коллайдер.

Я бы посмотрел на Box Collider Reference , потому что внизу находится Матрица действий при столкновении , которая объясняет, при каких условиях происходят столкновения.

0 голосов
/ 04 сентября 2015

Пожалуйста, добавьте теги в Unity. Возможно, вы не добавляете теги к объектам. Пожалуйста, добавьте tag1 и tag2 к своим тегам, выберите ваши объекты и выберите tag1 или tag2.

enter image description here

...