Я использую актив от третьего лица Opsive. Это довольно сложный контроллер от третьего лица, который управляет анимацией, повреждением, движением, вводом и т. Д. http://opsive.com/assets/ThirdPersonController/documentation.php
Я хотел бы обновить скрипт ControllerHandler.cs, чтобы персонаж двигался в том направлении, куда он смотрит, независимо от ориентации камеры. (В стиле старых игр Resident Evil)
В исходном сценарии персонаж двигался вперед относительно того, в каком направлении была обращена камера.
Я получил несколько советов по изменению строки в этом скрипте, но с изменениями персонаж движется вперед в одном фиксированном направлении. (Например: когда я поворачиваюсь вправо с помощью клавиши D, а затем нажимаю W, чтобы двигаться вперед, персонаж поворачивается назад в том направлении, в котором он изначально смотрел, и движется в этом направлении.)
Вот оригинальная часть сценария:
#if ENABLE_MULTIPLAYER
if ( isLocalPlayer) {
#endif
if (m_Controller.Movement == RigidbodyCharacterController.MovementType.Combat || m_Controller.Movement == RigidbodyCharacterController.MovementType.Adventure) {
m_LookRotation = m_CameraTransform.rotation;
Вот что мне сказали изменить на:
#if ENABLE_MULTIPLAYER
if ( isLocalPlayer) {
#endif
if (m_Controller.Movement == RigidbodyCharacterController.MovementType.Combat || m_Controller.Movement == RigidbodyCharacterController.MovementType.Adventure) {
m_LookRotation = Quaternion.Euler(PlayerInput.GetAxisRaw(Constants.YawInputName), 0, 0);
К сожалению, это не дает желаемого результата.
Будем очень благодарны любой помощи. Спасибо!
Вот ссылка на сценарий контроллера: https://docs.google.com/document/d/1B4sstqtCqRMCLuHuxEuA9I7tO_3W4aHqEZwr73uFDjY/edit?usp=sharing