protected float Compare(float a, float b, MinMaxType compareType)
    {
        if (compareType == MinMaxType.Maximum)
        {
            return(Mathf.Max(a, b));
        }

        return(Mathf.Min(a, b));
    }
    private void CheckMinMax(int i, float spaceMult, MinMaxType type, float spaceOffset, float offsetMod)
    {
        if (varList[i].minMax)
        {
            GUILayout.Space(spaceOffset);

            // Int Min/Max
            if (type == MinMaxType.Int)
            {
                EditorGUI.LabelField(new Rect(spaceOffset, posRect.y + 2.5f + (spaceMult), 200, 18), "Minimum");
                varList[i].min = EditorGUI.IntField(new Rect(spaceOffset + 75 - offsetMod, posRect.y + (spaceMult), 75 - offsetMod, 18), (int)varList[i].min);

                EditorGUI.LabelField(new Rect(spaceOffset + 175, posRect.y + 2.5f + (spaceMult), 200, 18), "Maximum");
                varList[i].max = EditorGUI.IntField(new Rect(spaceOffset + 250 - offsetMod, posRect.y + (spaceMult), 75 - offsetMod, 18), (int)varList[i].max);
            }

            // Float Min/Max
            else if (type == MinMaxType.Float)
            {
                EditorGUI.LabelField(new Rect(spaceOffset, posRect.y + 2.5f + (spaceMult), 200, 18), "Minimum");
                varList[i].min = EditorGUI.FloatField(new Rect(spaceOffset + 75 - offsetMod, posRect.y + (spaceMult), 75 - offsetMod, 18), varList[i].min);

                EditorGUI.LabelField(new Rect(spaceOffset + 175, posRect.y + 2.5f + (spaceMult), 200, 18), "Maximum");
                varList[i].max = EditorGUI.FloatField(new Rect(spaceOffset + 250 - offsetMod, posRect.y + (spaceMult), 75 - offsetMod, 18), varList[i].max);
            }

            // Checks to make sure min and max values do not exceed logical boundaries
            if (varList[i].max < varList[i].min)
            {
                varList[i].max = varList[i].min;
            }
            else if (varList[i].min > varList[i].max)
            {
                varList[i].min = varList[i].max;
            }
        }

        else
        {
            GUILayout.Space(space);
        }
    }
Beispiel #3
0
        public override void OnInspectorGUI()
        {
            serializedObject.Update();

            GUI.enabled = false;
            SerializedProperty prop = serializedObject.FindProperty("m_Script");

            EditorGUILayout.PropertyField(prop, true, new GUILayoutOption[0]);
            GUI.enabled = true;

            EditorGUILayout.PropertyField(serializedObject.FindProperty("minMaxType"));
            GUILayout.Space(20);

            MinMaxType minMaxType = (MinMaxType)serializedObject.FindProperty("minMaxType").objectReferenceValue;

            if (minMaxType == null)
            {
                EditorGUILayout.PropertyField(serializedObject.FindProperty("min"));
                EditorGUILayout.PropertyField(serializedObject.FindProperty("max"));
                EditorGUILayout.PropertyField(serializedObject.FindProperty("defaultValue"));
            }

            serializedObject.ApplyModifiedProperties();
        }