void OnEnable() { m_group = VaporTabGroup.GetTabGroup(); var xyMult = serializedObject.FindProperty("GlobalResolutionMult"); var zMult = serializedObject.FindProperty("DepthResolutionMult"); float xy = xyMult.floatValue; float z = zMult.floatValue; if (xyMult.hasMultipleDifferentValues || zMult.hasMultipleDifferentValues) { m_quality = Vapor.QualiySetting.Custom; } else if (Mathf.Approximately(xy, 0.8f) && Mathf.Approximately(z, 0.8f)) { m_quality = Vapor.QualiySetting.Low; } else if (Mathf.Approximately(xy, 1.0f) && Mathf.Approximately(z, 1.0f)) { m_quality = Vapor.QualiySetting.Medium; } else if (Mathf.Approximately(xy, 1.2f) && Mathf.Approximately(z, 1.2f)) { m_quality = Vapor.QualiySetting.High; } else { m_quality = Vapor.QualiySetting.Custom; } }
public override void OnInspectorGUI() { serializedObject.Update(); DrawPropertiesExcluding(serializedObject, DontIncludeMe); var tab = VaporTabGroup.GetTabGroup(); if (tab.Foldout("Albedo (RGB) Extinction (A) Gradient", "Gradients", EditorStyles.boldLabel, GUILayout.Width(18.0f))) { float w = EditorGUIUtility.labelWidth; EditorGUIUtility.labelWidth = 35.0f; PropertyField("HeightGradient.End", "End", GUILayout.Width(EditorGUIUtility.labelWidth + 28.0f)); using (new EditorGUILayout.HorizontalScope()) { Rect rect; using (new EditorGUILayout.VerticalScope()) { //Just for fill GUILayoutUtility.GetRect(30.0f, 100.0f); rect = GUILayoutUtility.GetRect(30.0f, 20.0f); rect.height = 140.0f; rect.yMin += 20; } GUIUtility.RotateAroundPivot(-90.0f, new Vector2(rect.xMin, rect.yMin)); EditorGUI.BeginChangeCheck(); EditorGUI.PropertyField(new Rect(rect.xMin, rect.yMin, rect.height, rect.width), serializedObject.FindProperty("HeightGradient.Gradient"), new GUIContent(), true); if (EditorGUI.EndChangeCheck()) { BakeGradients(); } rect = GUILayoutUtility.GetRect(0, float.MaxValue, 0, 120); rect.xMax -= 25.0f; GUI.matrix = Matrix4x4.identity; GUI.DrawTexture(new Rect(rect.xMin, rect.yMin, rect.width, rect.height), (target as VaporSetting).GradientTex); } using (new EditorGUILayout.HorizontalScope()) { PropertyField("HeightGradient.Start", "Start", GUILayout.Width(EditorGUIUtility.labelWidth + 28.0f)); GUILayout.FlexibleSpace(); GUILayout.Label("End"); } using (new EditorGUILayout.HorizontalScope()) { PropertyField("DistanceGradient.Start", "", GUILayout.Width(28.0f)); GradientField("DistanceGradient.Gradient"); PropertyField("DistanceGradient.End", "", GUILayout.Width(28.0f)); } EditorGUIUtility.labelWidth = w; } else { float w = EditorGUIUtility.labelWidth; EditorGUIUtility.labelWidth = 35.0f; GUILayout.Label("Height gradient"); using (new EditorGUILayout.HorizontalScope()) { PropertyField("HeightGradient.Start", "Start", GUILayout.Width(EditorGUIUtility.labelWidth + 28.0f)); GradientField("HeightGradient.Gradient"); PropertyField("HeightGradient.End", "End", GUILayout.Width(EditorGUIUtility.labelWidth + 28.0f)); } GUILayout.Label("Distance gradient"); using (new EditorGUILayout.HorizontalScope()) { PropertyField("DistanceGradient.Start", "Start", GUILayout.Width(EditorGUIUtility.labelWidth + 28.0f)); GradientField("DistanceGradient.Gradient"); PropertyField("DistanceGradient.End", "End", GUILayout.Width(EditorGUIUtility.labelWidth + 28.0f)); } EditorGUIUtility.labelWidth = w; } serializedObject.ApplyModifiedProperties(); }