Правильно подмечено. Должно быть OnTriggerExit(). Сорри)) FixedUpdate() вызывается еще чаще,чем Update() по умолчанию, но промежутки, через которые вызывается FixedUpdate() можно поменять в настройках. Все OnTrigger() по частоте вызова схожи с FixedUpdate(), но вызываются не абсолютно синхронно. вот ссылка на статью про порядок вызова всего: docs.unity3d.com/Manual/ExecutionOrder.html
А вот про то как синхронизировать вызовы функций OnTrigger() с FixedUpdate() или Update(): answers.unity3d.com/questions/268326/ontriggerstay... Они, оказывается могут быть корутинами и можно сделать WaitForFixedUpdate.
The fix is to go to Window -> Lighting -> Lightmap Tab -> Disable Continuous Baking -> Press Build to bake the lighting once manually. And now the lighting remains consistent. Original: forum.unity3d.com/threads/application-loadlevel-ap...
Круто!
Единственное: я обычно не юзаю OnTriggerStay() для этого.
Делаю так:
bool inTrigger = false;
OnTriggerEnter()
{
inTrigger = true;
}
void Update()
{
if (inTrigger && (еще что то))
// что то сделать
}
OnTriggerEnter()
{
inTrigger = false;
}
Или если нужно, можно вести список объектов, которые в триггере. На входе добавлять, а на выходе убирать. Так не будет постоянных вызовов OnTriggerStay() если у нас там ничего нет. + OnTriggerStay() вызывается чаще, чем Update(). Так экономим ресурсы как бы....
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
А вот про то как синхронизировать вызовы функций OnTrigger() с FixedUpdate() или Update(): answers.unity3d.com/questions/268326/ontriggerstay... Они, оказывается могут быть корутинами и можно сделать WaitForFixedUpdate.