You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
2.4 KiB
79 lines
2.4 KiB
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)); |
|
} |
|
} |
|
}
|
|
|