protected virtual void VraiableField(Rect Position, GUIContent label, VariableSO variableSO)
 {
     if (variableSO.ToString("ID") == "ID" || variableSO.ToString("ID") == "-ID") //check if formating made issue with data
     {
         float ParsedNum;
         if (float.TryParse(variableSO.ToString(), out ParsedNum))
         {
             variableSO.SetValue(EditorGUI.FloatField(Position, label, ParsedNum).ToString());
         }
         else
         {
             variableSO.SetValue(EditorGUI.TextField(Position, label, variableSO.ToString()));
         }
     }
     else
     {
         variableSO.SetValue(EditorGUI.TextField(Position, label, variableSO.ToString("ID")));
     }
 }
Пример #2
0
        public override void OnInspectorGUI()
        {
            //Draw the defualt inspector options
            DrawDefaultInspector();

            VariableSO <T> script = (VariableSO <T>)target;

            EditorGUILayout.BeginVertical(EditorStyles.helpBox);

            EditorGUILayout.LabelField("Debugging Options", EditorStyles.centeredGreyMiniLabel);

            EditorGUILayout.LabelField("Current Value: " + script.Value, EditorStyles.boldLabel);

            EditorGUILayout.BeginHorizontal();

            //Display a int input field and button to add the inputted Value to the current Value
            ModifyValue = GetEditorGUILayoutValue(ModifyValue);

            //  EditorGUILayout.PropertyField(serializedObject.FindProperty("value"));
            //  serializedObject.ApplyModifiedProperties();
            // script.se
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.BeginHorizontal();

            if (!EqualityComparer <T> .Default.Equals(script.GetValue(), ModifyValue))
            {
                if (GUILayout.Button("Modify"))
                {
                    script.SetValue(ModifyValue);
                }
            }
            EditorGUILayout.EndHorizontal();

            //Display button that resets the Value to the starting Value
            if (GUILayout.Button("Reset Value"))
            {
                if (EditorApplication.isPlaying)
                {
                    script.ResetValue();
                }
            }
            EditorGUILayout.EndVertical();
        }