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"))); } }
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(); }