Как открыть дверь?

Общие вопросы о Unity3D

Как открыть дверь?

Сообщение alexey.terno 16 янв 2020, 04:26

Всем привет!
Реализую открытие/закрытие двери по нажатию кнопки, если персонаж находится в зоне взаимодействия коллайдеров.
Движение персонажа реализовано через CharacterController. На двери весит один коллайдер для физики и второй коллайдер в режиме триггера, а так же Rigidbody для того, чтобы работала процедура OnTriggerEnter. Проблема в том, что когда дверь открывается в сторону персонажа и сталкивается с ним, персонаж может "запрыгнуть" на второй этаж и застрять там. Если же убрать с двери Rigidbody и открыть ее с помощью ручного переключения свойств, то персонаж отодвигается корректно. Как исправить некорректное взаимодействие персонажа и двери?
alexey.terno
UNIт
 
Сообщения: 117
Зарегистрирован: 19 май 2019, 19:07

Re: Как открыть дверь?

Сообщение alexey.terno 16 янв 2020, 04:30

Есть вот такой вариант - убрать с двери Rigidbody и триггерный коллайдер, а в скрипт к персонажу добавить проверку по Raycast, но будет ли это корректно? Не пострадает ли из-за этого производительность?
alexey.terno
UNIт
 
Сообщения: 117
Зарегистрирован: 19 май 2019, 19:07

Re: Как открыть дверь?

Сообщение Dio5555 20 янв 2020, 18:47

Здравствуйте!
У вас двери динамические или они работают через Animator ?
Если у вас открытие по нажатию кнопки мыши или прочей кнопки, то скрип навряд ли будет кушать много ресурсов, так как до if он будет игнорировать "может я ошибаюсь, то поправьте меня" .
Если по триггеру, то до проверки, тоже мало будет кушать.
Если динамические, то при закрытой двери отключите Rigidbody, а как откроется, то включите его.
Если Animator, то можно сделать две анимации и проигрывать в зависимости где стоит Игрок.
Dio5555
UNIт
 
Сообщения: 83
Зарегистрирован: 06 сен 2018, 11:05


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13