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