protected override void OnInspectorGUI()
        {
            GPConditionCompareString compare = (GPConditionCompareString)Condition;

            // Comparer

            if (m_comparerEditor == null)
            {
                m_comparerEditor = new ValueComparerEditor <string>();
            }

            compare._comparerType.Type = m_comparerEditor.Display(compare._comparerType.Type);

            // Provider A

            EditorGUILayout.LabelField("Value A");

            EditorGUI.indentLevel++;

            if (m_providerAEditor == null)
            {
                m_providerAEditor          = new ValueProviderEditor <string>();
                m_providerAEditor.Provider = compare._providerA;
            }

            if (m_providerAEditor.Provider != compare._providerA)
            {
                m_providerAEditor.Provider = compare._providerA;
            }


            m_providerAEditor.Display();

            EditorGUI.indentLevel--;

            // Provider B

            EditorGUILayout.LabelField("Value B");

            EditorGUI.indentLevel++;

            if (m_providerBEditor == null)
            {
                m_providerBEditor          = new ValueProviderEditor <string>();
                m_providerBEditor.Provider = compare._providerB;
            }

            if (m_providerBEditor.Provider != compare._providerB)
            {
                m_providerBEditor.Provider = compare._providerB;
            }


            m_providerBEditor.Display();

            EditorGUI.indentLevel--;
        }
        protected override void OnInspectorGUI()
        {
            GPConditionCompareDistance compare = (GPConditionCompareDistance)Condition;

            // Comparer

            if (m_comparerEditor == null)
            {
                m_comparerEditor = new ValueComparerEditor <float>();
            }

            compare._comparerType.Type = m_comparerEditor.Display(compare._comparerType.Type);

            // Provider A

            EditorGUILayout.LabelField("Object A");

            EditorGUI.indentLevel++;

            if (m_providerAEditor == null)
            {
                m_providerAEditor          = new ValueProviderEditor <GameObject>();
                m_providerAEditor.Provider = compare._providerA;
            }

            if (m_providerAEditor.Provider != compare._providerA)
            {
                m_providerAEditor.Provider = compare._providerA;
            }


            m_providerAEditor.Display();

            EditorGUI.indentLevel--;

            // Provider B

            EditorGUILayout.LabelField("Object B");

            EditorGUI.indentLevel++;

            if (m_providerBEditor == null)
            {
                m_providerBEditor          = new ValueProviderEditor <GameObject>();
                m_providerBEditor.Provider = compare._providerB;
            }

            if (m_providerBEditor.Provider != compare._providerB)
            {
                m_providerBEditor.Provider = compare._providerB;
            }


            m_providerBEditor.Display();

            EditorGUI.indentLevel--;

            // Distance

            EditorGUILayout.LabelField("Compare To");

            EditorGUI.indentLevel++;

            if (m_providerDistanceEditor == null)
            {
                m_providerDistanceEditor          = new ValueProviderEditor <float>();
                m_providerDistanceEditor.Provider = compare._distance;
            }

            if (m_providerDistanceEditor.Provider != compare._distance)
            {
                m_providerDistanceEditor.Provider = compare._distance;
            }

            m_providerDistanceEditor.Display();

            EditorGUI.indentLevel--;
        }