Unity(C#) - Как проверить, является ли объект землёй?

187
30 мая 2018, 16:40

Есть объект "Player", и есть объекты земли, которые имеют скрипт "grass". Как осуществить проверку, соприкосается ли объект "Player" с землёй в данный момент?

Answer 1

Для реализации подобного есть готовые механизмы:

  1. OnTriggerEnter и OnTriggerExit:

    public class ExampleClass : MonoBehaviour {
        void OnTriggerEnter(Collider other) {
            // начало столкновения
        }
    }
    void OnTriggerExit(Collider other) {
            // окончание столкновения
    }
    

В OnTriggerEnter вы ловите все столкновения с другими объектами. Вы можете сохранять эти объекты в список, а в OnTriggerExit удалять. Тогда для осуществления проверки, соприкасается ли ваш объект с чем-то конкретным, вам достаточно посмотреть этот список.

  1. Топорное решение с Physics.Raycast. Самим рейкастить периодически, скажем, вниз. Смотреть, есть ли пересечение с чем-то. Если да, то смотреть, что это за объект.
  2. Есть ещё Physics.OverlapSphere. Можно получить список коллайдеров, с которыми сфера пересекается.
READ ALSO
Шифрование AES кириллица

Шифрование AES кириллица

Подскажите, пожалуйстаИспользую в своем приложении шифрование алгоритмом AES

239
Создать ссылку на скачивание файла

Создать ссылку на скачивание файла

У меня такой вопросЗначит я добавил файл excel через resources

205
Получение строки из Python скрипта в С#

Получение строки из Python скрипта в С#

Нужно запустить Python3 скрипт на С#IronPython, как выяснилось, поддерживает только python2

191