Example #1
0
        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;
            }
        }
Example #2
0
        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();
        }