12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- using UnityEngine;
- using UnityEngine.PostProcessing;
- using System;
- using System.Linq.Expressions;
- namespace UnityEditor.PostProcessing
- {
- public class PostProcessingModelEditor
- {
- public PostProcessingModel target { get; internal set; }
- public SerializedProperty serializedProperty { get; internal set; }
- protected SerializedProperty m_SettingsProperty;
- protected SerializedProperty m_EnabledProperty;
- internal bool alwaysEnabled = false;
- internal PostProcessingProfile profile;
- internal PostProcessingInspector inspector;
- internal void OnPreEnable()
- {
- m_SettingsProperty = serializedProperty.FindPropertyRelative("m_Settings");
- m_EnabledProperty = serializedProperty.FindPropertyRelative("m_Enabled");
- OnEnable();
- }
- public virtual void OnEnable()
- {}
- public virtual void OnDisable()
- {}
- internal void OnGUI()
- {
- GUILayout.Space(5);
- var display = alwaysEnabled
- ? EditorGUIHelper.Header(serializedProperty.displayName, m_SettingsProperty, Reset)
- : EditorGUIHelper.Header(serializedProperty.displayName, m_SettingsProperty, m_EnabledProperty, Reset);
- if (display)
- {
- EditorGUI.indentLevel++;
- using (new EditorGUI.DisabledGroupScope(!m_EnabledProperty.boolValue))
- {
- OnInspectorGUI();
- }
- EditorGUI.indentLevel--;
- }
- }
- void Reset()
- {
- var obj = serializedProperty.serializedObject;
- Undo.RecordObject(obj.targetObject, "Reset");
- target.Reset();
- EditorUtility.SetDirty(obj.targetObject);
- }
- public virtual void OnInspectorGUI()
- {}
- public void Repaint()
- {
- inspector.Repaint();
- }
- protected SerializedProperty FindSetting<T, TValue>(Expression<Func<T, TValue>> expr)
- {
- return m_SettingsProperty.FindPropertyRelative(ReflectionUtils.GetFieldPath(expr));
- }
- protected SerializedProperty FindSetting<T, TValue>(SerializedProperty prop, Expression<Func<T, TValue>> expr)
- {
- return prop.FindPropertyRelative(ReflectionUtils.GetFieldPath(expr));
- }
- }
- }
|