////////////////////////////////////////////////////// // MK Glow Lite Editor Legacy // // // // Created by Michael Kremmel // // www.michaelkremmel.de // // Copyright © 2020 All rights reserved. // ////////////////////////////////////////////////////// #if UNITY_EDITOR using UnityEngine; using UnityEditor; using MK.Glow.Editor; namespace MK.Glow.Legacy.Editor { using Tooltips = MK.Glow.Editor.EditorHelper.EditorUIContent.Tooltips; [CustomEditor(typeof(MK.Glow.Legacy.MKGlowLite))] internal class MKGlowEditor : UnityEditor.Editor { //Behaviors private SerializedProperty _showEditorMainBehavior; private SerializedProperty _showEditorBloomBehavior; private SerializedProperty _showEditorLensSurfaceBehavior; //Main private SerializedProperty _debugView; private SerializedProperty _workflow; private SerializedProperty _selectiveRenderLayerMask; private SerializedProperty _anamorphicRatio; //Bloom private SerializedProperty _bloomThreshold; private SerializedProperty _bloomScattering; private SerializedProperty _bloomIntensity; //Lens Surface private SerializedProperty _allowLensSurface; private SerializedProperty _lensSurfaceDirtTexture; private SerializedProperty _lensSurfaceDirtIntensity; private SerializedProperty _lensSurfaceDiffractionTexture; private SerializedProperty _lensSurfaceDiffractionIntensity; public void OnEnable() { //Editor _showEditorMainBehavior = serializedObject.FindProperty("showEditorMainBehavior"); _showEditorBloomBehavior = serializedObject.FindProperty("showEditorBloomBehavior"); _showEditorLensSurfaceBehavior = serializedObject.FindProperty("showEditorLensSurfaceBehavior"); //Main _debugView = serializedObject.FindProperty("debugView"); _workflow = serializedObject.FindProperty("workflow"); _selectiveRenderLayerMask = serializedObject.FindProperty("selectiveRenderLayerMask"); _anamorphicRatio = serializedObject.FindProperty("anamorphicRatio"); //Bloom _bloomThreshold = serializedObject.FindProperty("bloomThreshold"); _bloomScattering = serializedObject.FindProperty("bloomScattering"); _bloomIntensity = serializedObject.FindProperty("bloomIntensity"); _allowLensSurface = serializedObject.FindProperty("allowLensSurface"); _lensSurfaceDirtTexture = serializedObject.FindProperty("lensSurfaceDirtTexture"); _lensSurfaceDirtIntensity = serializedObject.FindProperty("lensSurfaceDirtIntensity"); _lensSurfaceDiffractionTexture = serializedObject.FindProperty("lensSurfaceDiffractionTexture"); _lensSurfaceDiffractionIntensity = serializedObject.FindProperty("lensSurfaceDiffractionIntensity"); } public override void OnInspectorGUI() { serializedObject.Update(); EditorHelper.VerticalSpace(); EditorHelper.EditorUIContent.IsNotSupportedWarning(); EditorHelper.EditorUIContent.XRUnityVersionWarning(); if(_workflow.enumValueIndex == 1) { EditorHelper.EditorUIContent.SelectiveWorkflowDeprecated(); } if(EditorHelper.HandleBehavior(_showEditorMainBehavior.serializedObject.targetObject, EditorHelper.EditorUIContent.mainTitle, "", _showEditorMainBehavior, null)) { EditorGUILayout.PropertyField(_debugView, Tooltips.debugView); EditorGUILayout.PropertyField(_workflow, Tooltips.workflow); EditorHelper.EditorUIContent.SelectiveWorkflowVRWarning((Workflow)_workflow.enumValueIndex); if(_workflow.enumValueIndex == 1) { EditorGUILayout.PropertyField(_selectiveRenderLayerMask, Tooltips.selectiveRenderLayerMask); } EditorGUILayout.PropertyField(_anamorphicRatio, Tooltips.anamorphicRatio); EditorHelper.VerticalSpace(); } if(EditorHelper.HandleBehavior(_showEditorBloomBehavior.serializedObject.targetObject, EditorHelper.EditorUIContent.bloomTitle, "", _showEditorBloomBehavior, null)) { if(_workflow.enumValueIndex == 0) EditorGUILayout.PropertyField(_bloomThreshold, Tooltips.bloomThreshold); EditorGUILayout.PropertyField(_bloomScattering, Tooltips.bloomScattering); EditorGUILayout.PropertyField(_bloomIntensity, Tooltips.bloomIntensity); _bloomIntensity.floatValue = Mathf.Max(0, _bloomIntensity.floatValue); EditorHelper.VerticalSpace(); } if(EditorHelper.HandleBehavior(_showEditorLensSurfaceBehavior.serializedObject.targetObject, EditorHelper.EditorUIContent.lensSurfaceTitle, "", _showEditorLensSurfaceBehavior, _allowLensSurface)) { using (new EditorGUI.DisabledScope(!_allowLensSurface.boolValue)) { EditorHelper.DrawHeader(EditorHelper.EditorUIContent.dirtTitle); EditorGUILayout.PropertyField(_lensSurfaceDirtTexture, Tooltips.lensSurfaceDirtTexture); EditorGUILayout.PropertyField(_lensSurfaceDirtIntensity, Tooltips.lensSurfaceDirtIntensity); _lensSurfaceDirtIntensity.floatValue = Mathf.Max(0, _lensSurfaceDirtIntensity.floatValue); EditorGUILayout.Space(); EditorHelper.DrawHeader(EditorHelper.EditorUIContent.diffractionTitle); EditorGUILayout.PropertyField(_lensSurfaceDiffractionTexture, Tooltips.lensSurfaceDiffractionTexture); EditorGUILayout.PropertyField(_lensSurfaceDiffractionIntensity, Tooltips.lensSurfaceDiffractionIntensity); _lensSurfaceDiffractionIntensity.floatValue = Mathf.Max(0, _lensSurfaceDiffractionIntensity.floatValue); } EditorHelper.VerticalSpace(); } EditorHelper.DrawSplitter(); serializedObject.ApplyModifiedProperties(); } } } #endif