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

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