Проблема с движением персонажа от третьего лица - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь сделать очень простой сценарий движения, где игрок может использовать 'wasd', чтобы сделать персонажа префабом вперед, назад, влево и вправо.Для этого я использую следующий скрипт:

public class PlayerInput : MonoBehaviour {

   public Camera camera;
   public float speed;

   void Update () {     

      float horizontal = Input.GetAxis("Horizontal");
      float vertical = Input.GetAxis("Vertical");

      Debug.Log("horizontal: " + horizontal);
      Debug.Log("vertical: " + vertical);
      // Set character position 
      Vector3 direction = transform.position;
      if(horizontal != 0.0f || vertical != 0.0f) {
         if(vertical < 0.0f) {
                direction -= camera.transform.forward;
            } else if(vertical > 0.0f) {
                direction += camera.transform.forward;
            }
            if(horizontal < 0.0f) {
                direction -= camera.transform.right;
            } else if(horizontal > 0.0f) {
                direction += camera.transform.right;
            }               
            transform.Translate(direction * speed * Time.deltaTime);
        }
    }
}

Однако мой персонаж двигается только вперед, независимо от того, какую клавишу я нажимаю вниз.Камера расположена за моим персонажем в том же character префабе.Почему мой вход только движется в прямом направлении?

Я могу добавить фотографии своего сборного дома и камеры, если это поможет.

1 Ответ

0 голосов
/ 23 мая 2018

Я глупый .. Мне нужно было обновить мой Vector3 direction ...

Vector3 direction = transform.position; должно быть Vector3 direction = new Vector3();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...