Я пытаюсь сделать очень простой сценарий движения, где игрок может использовать '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
префабе.Почему мой вход только движется в прямом направлении?
Я могу добавить фотографии своего сборного дома и камеры, если это поможет.