nik | Дата: Среда, 19 Марта 2014, 13:41 | Сообщение # 1 |
just nik
Сейчас нет на сайте
| с самого начала пользования Unity я пытаюсь найти альтернативы стандартному Character Controller'у и конечно же без результата не остался..
Рассмотрим три варианта контроллеров, от самого простого до самого навороченного
Вариант 1. стандартный Character Controller удобен, легко настраивается, но не является физическим объектом, то есть нельзя взаимодействовать с физическими объектами (RigidBody) и это его самый большой минус..
Вариант 2. Придумал как только начал экспериментировать с RigidBody. В коде контроллера я создал правило что если коллизия считывает столкновения не выше положенного места (то есть самого дна капсулы) то контроллер считается на земле, если бы я этого не сделал то игрок мог бы спокойно лазить по стенам и горам.. небольшой минус: для передвижения используется rigidbody.AddForce (); то есть контроллер отталкивается не от поверхности на которой он находиться.
Вариант 3. По моему самый реалистичный вариант из всех. RigidBody капсула совместно со RigidBody сферой. вот как он устроен: У капсулы отключены вращения, капсула является дочерним объектом сферы. у сферы стоит компонент Configurable Joint c привязкой к капсуле. Движения производятся с помощью изменения скорости вращения сферы (rigidbody.angularVelocity) для более быстрого перемещения был изменен параметр максимальной скорости вращения (rigidbody.maxAngularVelocity). для хорошего сцепления с поверхностями я создал новый физический материал с увеличенным трением. В результате был получен полностью рабочий физический контроллер. его можно сбивать, двигать на платформах и т.д.
Надеюсь данная информация будет вам полезна
BridgeGamingTeam
Сообщение отредактировал nik - Среда, 19 Марта 2014, 13:44 |
|
| |