Страница 1 из 1

СharacterController в присядку

СообщениеДобавлено: 18 ноя 2019, 20:24
Axil
Использую СharacterController, т.к. он предоставляет много возможностей. Особенно шагание на ступеньки и регулирование высоты возможных ступенек.

1.
Наткнулся на древнюю проблему - если высота ступенек задана достаточно большой (но естественно не превышает половину роста) - СharacterController начинает задевать головой низкие потолки и дверные проемы, которые нормально проходит если уменьшить высоту шага. Первое упоминание этой проблему 12 год, а воз и ныне там.
https://forum.unity.com/threads/charact ... ps.202086/
Нормального решения нет, но я просто тупо уменьшил высоту контроллера, чтобы замедлялся но проходил.
Кто сталкивался и как решал?

2.
Сделал приседание - уменьшаю высоту капсулы. Причем снизу и персонаж как-бы падает, поэтому все плавно.
Вставание - возвращаю высоту - персонажа выталкивает из поверхности и это наверно не правильно, иногда может и застрять.
Чтобы не застрял, может быть придать ему ускорения вверх типа как при прыжке?
Но самое страшное - что делать если игрок встал в процессе пролезания под низким препятствием?
Нужно запретить ему вставать, но как?
Повесить над головой триггер или есть другие законные методы?
CollisionFlags над головой не сработает, касания нет, но вставать нельзя!

Re: СharacterController в присядку

СообщениеДобавлено: 18 ноя 2019, 20:32
Xtir
2. Кроме как изменить высоту, нужно ещё и отцентрировать его, что бы не проваливался. А что бы он не мог встать там где нельзя, можно луч провести вверх и проверить есть там что-нибудь, или нет.

Re: СharacterController в присядку

СообщениеДобавлено: 18 ноя 2019, 20:38
Axil
Я центрирую его относительно глаз (камеры). По этому при вставании он как-бы растет вниз. Но вроде бы вставать одновременно подбрасывая его, почти как при прыжке - нормальная тема. Если отрегулировать скорость подбрасывания.
При попытке встать - проверять RayCast'ом? :-? Попробую.

Re: СharacterController в присядку

СообщениеДобавлено: 18 ноя 2019, 20:44
Axil
Собственно, если не просто увеличить высоту, а еще и центр всего объекта поднять - то да это будет вставание без пересечения с полом и наверно так правильно....
Но это происходит рывком, а по моему методу плавненько. И хоть позиция камеры у меня все равно сглаживается так получаетяс намного приятнее.

Re: СharacterController в присядку

СообщениеДобавлено: 18 ноя 2019, 23:11
Axil
RayCast может промахнуться.

Re: СharacterController в присядку

СообщениеДобавлено: 18 ноя 2019, 23:54
Axil
Добавил коллайдер - триггер над головой, но в OnTriggerEnter приходит какая-то дичь.
Наверно нельзя под один и тот-же объект вешать и триггер и СharacterСontroller, т.к. OnTriggerEnter срабатывает и для СharacterСontroller и для триггера ?
Они там еще и сами с собой пересекаются но почему-то с другими объектами - нет

Re: СharacterController в присядку

СообщениеДобавлено: 19 ноя 2019, 00:09
Axil
Все я понял! Правильный ответ: Physics.OverlapSphere
Вот как полезно посоветоваться с уточками!

Re: СharacterController в присядку

СообщениеДобавлено: 19 ноя 2019, 20:08
Jarico
изменяешь высоту, и изменяешь offset... Вот тебе и приседание

Re: СharacterController в присядку

СообщениеДобавлено: 20 ноя 2019, 16:38
Axil
Так в приседанием проблем и не было, были проблемы со вставанием после приседания.