Обработка движения на склоне в Unity3D?C#

Место общения программистов C#
Anonymous
Обработка движения на склоне в Unity3D?

Сообщение Anonymous »

Я просто ищу информацию или ресурсы/советы, потому что уже несколько месяцев не могу разобраться в этом должным образом.
У меня есть контроллер персонажа, и при перемещении вверх круглая поверхность, угол наклона значительно меняется в каждом кадре, и угол меняется вверх и вниз, поэтому он никогда не бывает постоянным, и поэтому, если я хочу замедлить скорость движения игрока при движении вверх по склону, я не могу заставить его работать, потому что каждый шаг игрока принимает, угол либо остается примерно таким же, либо увеличивается/опускается на 5-10 градусов, а иногда и больше, поэтому что-то вроде следующего вообще не работает.
У меня даже пробовал диапазоны углов, но все равно есть или игнорируются очень небольшие изменения угла, но никаких изменений не произошло. Происходит следующее: скорость проигрывателя увеличивается/понижается/вверх/вниз в каждом кадре, что выглядит и воспроизводится ужасно.

Код: Выделить всё

if (slopeAngle > 65f)
{
# reduce speed etc
}
В настоящее время я использую BoxCast, поскольку он покрывает большую площадь и более последователен, чем Raycast и SphereCast, а затем Vector3.Angle, чтобы получить hit.normal и обработать движение наклона, и я также толкать игрока вниз, чтобы не было подпрыгивания при спуске по склонам и т. д. Но главную проблему решить не могу. Есть ли какая-либо информация/советы по этому поводу?

Подробнее здесь: https://stackoverflow.com/questions/791 ... in-unity3d

Вернуться в «C#»