private void HandleMovement() { float moveX = 0f; float moveY = 0f; if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow)) { moveY = +1f; } if (Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.DownArrow)) { moveY = -1f; } if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow)) { moveX = -1f; } if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow)) { moveX = +1f; } moveDir = new Vector3(moveX, moveY).normalized; bool isIdle = moveX == 0 && moveY == 0; if (isIdle) { spriteAnimator.Idle(lastMoveDir); } else { spriteAnimator.Move(moveDir); lastMoveDir = moveDir; } }