Unity: Как заставить OnTriggerOver показывать, что это событие не произошло?
Я допускаю, что вопрос нубский, но конкретно этот момент в использовании триггеров я не понимаю, и в документации он не уточнен.
Предположим, есть класс и объект Spawner (это пустышка с box триггером и скриптом, и mesh cube для визуализации), в нем есть метод public bool CheckSpawn(Vector3), который должен разрешать спаун, если в зоне триггера нет объектов. Моя проблема в том, что в таких условиях OnTriggerOver не срабатывает, и некому переключить return (в CheckSpawn) на true.
Ну а в какой момент вы ожидаете срабатывание OntriggerOver? Если что все физметоды работают не моментально, могут не сработать сразу при инстанциации и привязаны к FixedUpdate.
В любой удобный для метода, я легко подожду до следующего кадра, или пару кадров. Но при отсутствии объектов в триггере он не сработает никогда, и не очевидно, как передать сигнал об отсутствии объектов в зоне спауна (а именно это и интересно - разрешение на спаун).
Такой уточняющий вопрос, а когда срабатывают методы коллайдера:
• OnCollisionEnter
• OnCollisionOver
• OnCollisionExit
• OnTriggerEnter
• OnTriggerOver
• OnTriggetExit
До Update или после?
Внутри FixedUpdate - то есть непредсказуемо-рандомно?
И очевидно, до LateUpdate - он всегда срабатывает последним.
Jinx, Все эти методы работают в FixedUpdate, и никак не привязаны к апдейту. Вообще. Поэтому мониторить что то в фикседе а обрабатывать в апдейте надо с умом
И я правильно понимаю, что все файлы MonoBehavior складываются в один поток Unity, а не распределяются по ядрам процессоров и другим системным способам ускорить вычисления? Включая Invoke и Coroutine - они просто периодически приостанавливают основную программу для себя.