void Update()
    {
        var forward = Vector3.zero;

        if (Input.GetKey("w"))
        {
            forward = transform.forward;
        }
        else if (Input.GetKey("s"))
        {
            forward = transform.forward * -1;
        }
        else if (Input.GetKey("a"))
        {
            forward = Quaternion.Euler(0, -90, 0) * transform.forward;
        }
        else if (Input.GetKey("d"))
        {
            forward = Quaternion.Euler(0, 90, 0) * transform.forward;
        }

        if (forward != Vector3.zero)
        {
            transform.Translate(m_speed * forward * Time.deltaTime, Space.Self);
            m_player_fsm.SwitchTo(typeof(PlayerMoveState));
        }
        else
        {
            m_player_fsm.SwitchTo(typeof(PlayerIdleState));
        }
    }