void Update()
    {
        // Rotate player to match mouse target
        mousePoint = MouseUtils.GetMouseLookPoint(player.transform.position.y);
        player.LookAt(mousePoint);

        // Crosshair targets the look point
        crosshair.transform.position = mousePoint;

        if (GameManager.Instance.DebugMode)
        {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            Debug.DrawLine(ray.origin, mousePoint, Color.yellow);
        }

        // Player movement
        Vector3 moveInput = new Vector3(Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical"));

        velocity = movement.GetTargetVelocity(moveInput.normalized);
        player.Move(velocity);
    }