using UnityEditor.Rendering; using UnityEngine.Experimental.Rendering.HDPipeline; using UnityEngine.Rendering; namespace UnityEditor.Experimental.Rendering.HDPipeline { using UnityObject = UnityEngine.Object; // // Sample use: // // [CustomEditor(typeof(TestComponent)] // class TestEditor : HDBaseEditor // { // SerializedProperty m_MyFloat; // // protected override void OnEnable() // { // base.OnEnable(); // m_MyFloat = properties.Find(x => x.myFloat); // } // // public override void OnInspectorGUI() // { // EditorGUILayout.PropertyField(m_MyFloat); // } // } // public class HDBaseEditor : Editor where T : UnityObject { internal PropertyFetcher properties { get; private set; } protected T m_Target { get { return target as T; } } protected T[] m_Targets { get { return targets as T[]; } } protected HDRenderPipeline m_HDPipeline { get { return RenderPipelineManager.currentPipeline as HDRenderPipeline; } } protected virtual void OnEnable() { properties = new PropertyFetcher(serializedObject); } } }