111
This commit is contained in:
79
Assets/ThirdParty/PostProcessing/Editor/PostProcessingModelEditor.cs
vendored
Normal file
79
Assets/ThirdParty/PostProcessing/Editor/PostProcessingModelEditor.cs
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
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));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user