コード例 #1
0
        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);
        }
コード例 #2
0
        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();
        }