Quick Win 2: Make your movement feel real

We are not adding features. We are improving structure.

Yesterday, you built something important:

  • A Player object
  • Input separated from movement
  • CharacterController driving motion

Today, we make it feel intentional instead of robotic.


What you are building

By the end of this step:

  • Your player will rotate toward movement
  • Movement will feel directional
  • Your structure stays clean and scalable

Step 1: Update PlayerController

Open your existing PlayerController script and replace it with this:


using UnityEngine;

[RequireComponent(typeof(CharacterController))]
public sealed class PlayerController : MonoBehaviour
{
    [SerializeField] private PlayerInputReader input;
    [SerializeField] private float moveSpeed = 5f;
    [SerializeField] private float rotationSpeed = 10f;

    private CharacterController controller;

    private void Awake()
    {
        controller = GetComponent<CharacterController>();
        if (input == null) input = GetComponent<PlayerInputReader>();
    }

    private void Update()
    {
        Vector2 move = input != null ? input.Move : Vector2.zero;

        Vector3 worldMove = new Vector3(move.x, 0f, move.y);

        if (worldMove.sqrMagnitude > 0.01f)
        {
            Quaternion targetRotation = Quaternion.LookRotation(worldMove);
            transform.rotation = Quaternion.Slerp(
                transform.rotation,
                targetRotation,
                rotationSpeed * Time.deltaTime
            );
        }

        controller.Move(worldMove * moveSpeed * Time.deltaTime);
    }
}

Step 2: Press play

Press Play.

Your player now turns toward the direction of movement.


Why this matters

You did not add a new system.

You improved an existing one.

  • Input is still separate
  • Movement is still isolated
  • CharacterController still handles collisions

This is how real projects grow.


Stop here

Do not add jumping yet.
Do not refactor everything.
Do not start importing animation packs.

Small, deliberate improvements beat feature explosions.


Tomorrow

Tomorrow, we take the exact same structure and prepare it for more than one player.

Dan