В единстве есть ли чистый способ переключения (включения / выключения) Me sh и Box коллайдеров с твердым телом? (3d) - PullRequest
0 голосов
/ 20 января 2020

В настоящее время я работаю над классической игрой в fps, я хочу иметь возможность генерировать большее количество «врагов», в идеале сотнями. Хотя это может быть неосуществимо. Я надеюсь использовать физику и Rigidbod[ies] для этих моделей противника.

Очевидно, что хорошим решением было бы иметь mesh colliders на всех этих моделях, но я уверен, что это повлияет на производительность. Поэтому моя альтернативная идея заключалась в том, чтобы вместо этого установить их сначала с помощью ящиков-коллайдеров, пока они находятся на расстоянии не менее X от игрока, а затем, как только они войдут в этот радиус вокруг игрока, чтобы переключить (через включение и отключение) эти ящики-коллайдеры на меня sh коллайдеры .

Можно ли это сделать и каковы последствия? Мои первоначальные тесты привели к тому, что модель потеряла обнаружение столкновений с полом и, таким образом, провалилась в окружающую среду.

Есть ли последствия для производительности при переключении (включении / отключении) коллайдеров / если это хоть что-то изменит?

Наконец, если ничего из вышеперечисленного не существует, есть ли лучшее решение этой проблемы, которое является эффективным?

Ответы [ 2 ]

1 голос
/ 22 января 2020

Самая распространенная практика, которую я знаю, это использование нескольких примитивных коллайдеров под одним и тем же твердым телом; Я считаю, что это гораздо эффективнее, чем использование мной sh коллайдеров, плюс, в качестве дополнительного бонуса, вы даже можете очень легко обрабатывать специальные удары (выстрелы в голову наносят х2 урон, выстрелы в ноги замедляют врагов), поскольку вы точно знаете, какой коллайдер был поражен.

Вот пример того, как они сделали это в тот день в Counter Strike enter image description here

Обратите внимание, что вам нужно будет правильно разместить каждый примитивный коллайдер на структура кости для правильного перемещения во время анимации.

1 голос
/ 20 января 2020

Я думаю, у вас должно быть два коллайдера для ваших врагов:

1) Постоянный ящик для физического взаимодействия. (Этот коллайдер будет находиться на отдельном слое, сталкиваясь только с физическим пространством.

2) Тогда у вас будет свой гибкий коллайдер box / me sh. Вместо замены коллайдеров включает / отключает их. Если это слишком далеко, попробуйте включить коробку, и если слишком близко, включите коллайдер me sh. Я думаю, что включение и отключение лучше для производительности, чем удаление и добавление компонентов во время выполнения. Кроме того, поскольку у вас уже есть «экологический коллайдер», обмен не является проблемой для движения ваших врагов.

Надеюсь, это поможет.

...