void Awake()
    {
        foreach (string s in Input.GetJoystickNames())
        {
            Debug.Log(s);
        }

        _MaxHealth        = 100;
        _Damage           = 10;
        MaxSpeed          = 0.04f;
        Acceleration      = 0.015f;
        Deceleration      = 0.03f;
        m_CurrentState    = new MovementPreBegin(this);
        m_ComboState      = new NoInputState(this, new NoInputState(this, null));
        m_FacingRight     = true;
        m_TotalForce      = Vector3.zero;
        slopeVector       = Vector3.zero;
        m_NGramWindowSize = 2;
        m_BaseZLevel      = 0.0f;

        //STATS
        m_MaxHealth     = 100.0f;
        m_CurrentHealth = 100.0f;

        previousActions    = new string[m_NGramWindowSize + 1];
        predictionSequence = new string[m_NGramWindowSize];

        m_GravityForce = -0.01f;

        m_MaxFallSpeed = -0.1f;
    }
    void Awake()
    {
        foreach (string s in Input.GetJoystickNames())
        {
            Debug.Log(s);
        }

        _MaxHealth = 100;
        _Damage = 10;
        MaxSpeed = 0.04f;
        Acceleration = 0.015f;
        Deceleration = 0.03f;
        m_CurrentState = new MovementPreBegin(this);
        m_ComboState = new NoInputState(this, new NoInputState(this, null));
        m_FacingRight = true;
        m_TotalForce = Vector3.zero;
        slopeVector = Vector3.zero;
        m_NGramWindowSize = 2;
        m_BaseZLevel = 0.0f;

        //STATS
        m_MaxHealth = 100.0f;
        m_CurrentHealth = 100.0f;

        previousActions = new string[m_NGramWindowSize + 1];
        predictionSequence = new string[m_NGramWindowSize];

        m_GravityForce = -0.01f;

        m_MaxFallSpeed = -0.1f;
    }