public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { var setting = property.FindPropertyRelative("m_setting"); var value = property.FindPropertyRelative("m_value"); var width = Mathf.Min(250f, position.width / 2f); var settingRect = position; settingRect.width = width; using (var change = new EditorGUI.ChangeCheckScope()) { EditorGUI.PropertyField(settingRect, setting, new GUIContent()); if (change.changed) { value.stringValue = string.Empty; } } var valueRect = position; valueRect.xMin = settingRect.xMax + 10f; SettingValueDrawer.Draw(valueRect, GUIContent.none, value, setting.objectReferenceValue as Setting); }
public override void OnInspectorGUI() { serializedObject.Update(); EditorGUILayout.PropertyField(m_category); EditorGUILayout.PropertyField(m_description); EditorGUILayout.PropertyField(m_displayMode); CustomGUI(); serializedObject.ApplyModifiedProperties(); if (target is Setting setting && !setting.IsRuntime) { var rect = EditorGUILayout.GetControlRect(); var label = new GUIContent(m_defaultValue.displayName, m_defaultValue.tooltip); SettingValueDrawer.Draw(rect, label, m_defaultValue, setting); } serializedObject.ApplyModifiedProperties(); }