OnTriggerExit вызывается коллайдером, не помеченным как ошибка триггера Unity - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть хирархия, подобная этой:
enter image description here
в родительском элементе у меня есть следующие компоненты:
enter image description here
ребенок по имени DropDetector имеет коллайдер, помеченный как триггер.и у ребенка по имени drop_area также есть коллайдер, но этот НЕ помечен как триггер.Но в настоящий момент мои функции OntriggerEnter и Exit вызываются из коллайдера drop_area, хотя он НЕ помечен как триггер.Почему это происходит?И как я могу остановить это?

Сценарий DropArea и твердое тело прикреплены к родителю с именем IncrementA_DropArea

Если вам нужна дополнительная информация или уточнение, пожалуйста, дайте мне знать, чтобы я мог уточнить!

1 Ответ

0 голосов
/ 27 декабря 2018

Это работает как задумано.Из документов Unity на MonoBehaviour.OnTriggerExit(Collider):

Это сообщение отправляется на триггер и коллайдер, который касается триггера.

Вы можетене избегайте этого от drop_area s MonoBehaviour s.

Однако в реализации MonoBehaviour.OnTriggerExit(Collider) вы можете сначала проверить, не является ли вызываемый коллайдер MonoBehaviour не триггером, и выйти из метода, если это так:

public Collider myCollider;

...

myCollider = GetComponent<Collider>();

...

void OnTriggerExit(Collider other) 
{
    if (!myCollider.isTrigger) 
    {
        return;
    } 

    // Do stuff for trigger here.
}
...