private void DrawVolumeList() { double searchDelayElapsed = EditorApplication.timeSinceStartup - searchDelayStart; if (volumeList == null || searchDelayElapsed > searchDelayDuration) { volumeList = Resources.FindObjectsOfTypeAll(typeof(AmplifyColorVolume)) as AmplifyColorVolume[]; searchDelayStart = EditorApplication.timeSinceStartup; } List <AmplifyColorVolume> filtered = volumeList.OrderBy(o => o.name).ToList <AmplifyColorVolume>(); GUILayout.BeginVertical(); GUILayout.Space(15); DrawHeader(filtered); GUILayout.Space(15); dirtyVolumeFlags = false; foreach (AmplifyColorVolume volume in filtered) { GUILayout.BeginHorizontal(); GUILayout.BeginVertical(); DrawVolumeProperties(volume); EditorGUILayout.Separator(); DrawVolumeEffects(volume); GUILayout.Space(3); GUILayout.EndVertical(); DrawLut(volume); GUILayout.EndHorizontal(); DrawLineSeparator(); } if (dirtyVolumeFlags) { GUI.FocusControl(""); AmplifyColorBase[] effects = Resources.FindObjectsOfTypeAll(typeof(AmplifyColorBase)) as AmplifyColorBase[]; AmplifyColorVolumeBase[] volumes = Resources.FindObjectsOfTypeAll(typeof(AmplifyColorVolumeBase)) as AmplifyColorVolumeBase[]; VolumeEffectFlags.UpdateCamFlags(effects, volumes); } GUILayout.EndVertical(); if (GUI.changed) { SceneView.RepaintAll(); } }