Как обнаружение столкновений и перемещение обычно обрабатываются в FPS, особенно при небольших изменениях высоты земли, таких как лестница (как на склоне, так и на спуске)?
источник
Как обнаружение столкновений и перемещение обычно обрабатываются в FPS, особенно при небольших изменениях высоты земли, таких как лестница (как на склоне, так и на спуске)?
Объекты, как правило, представлены капсулой (цилиндром с шарами на концах) от геометрии мира (или упрощенной сеткой столкновений) для столкновения миров.
Лестница не как правило, либо не-Collide с невидимым пандусом или ниже определенной высоты вы обычно подъем вверх, как побочный эффект разрешения коллизий. (Вы получите взаимопроникновение с движением как часть размера шага, и разрешение будет вытолкнуть его вверх, к ближайшей плоскости)
Я думаю, что так работает Unreal 3, но я могу ошибаться. Я помню, как видел в иерархии ограничивающую рамку в Source, но не помню, было ли это только для боя. капсулы простые и быстрые
В Unity 3D самый простой способ - иметь контроллер от первого лица. Обычно персонаж должен прыгать вверх, если высота шага выше смещения шага. Но другой способ сделать это - добавить блок-коллайдер и повернуть его, чтобы персонаж мог легко скользить по лестнице, как если бы это была рампа.
Ответ Брэди хорош, но если вам нужен хакерский способ сделать это, вы можете просто навести луч на геометрию столкновения с землей, выяснить, по какому треугольнику он попадает, а затем использовать средневзвешенную высоту вершин треугольника. выяснить высоту земли.