示例#1
0
        private void GeneralSettings(Rect Area, DynamicDecalSettings Settings)
        {
            GUI.BeginGroup(Area);

            //Header
            EditorGUI.DrawRect(new Rect(0, 0, Area.width, 24), LlockhamEditorUtility.HeaderColor);
            EditorGUI.LabelField(new Rect(8, 4, Area.width - 32, 16), "General", EditorStyles.boldLabel);

            //Reset
            Rect Reset = new Rect(Area.width - 20, 6, 12, 12);

            if (Event.current.type == EventType.MouseDown && Event.current.button == 0 && Reset.Contains(Event.current.mousePosition))
            {
                Undo.RecordObject(Settings, "Reset General");
                Settings.ResetGeneral();
                Event.current.Use();
            }
            GUI.DrawTexture(Reset, LlockhamEditorUtility.Reset);

            //Draw Background
            EditorGUI.DrawRect(new Rect(0, 24, Area.width, Area.height - 24), LlockhamEditorUtility.MidgroundColor);

            //Begin Layout Area
            GUILayout.BeginArea(new Rect(4, 32, Area.width - 20, Area.height - 32));

            //Shader replacement
            EditorGUI.BeginChangeCheck();
            ShaderReplacementType replacement = (ShaderReplacementType)EditorGUILayout.EnumPopup(new GUIContent("Shader Method", "The method of shader replacement to use. Make sure you have the appropriate shaders available to support the method in use."), Settings.Replacement);

            if (EditorGUI.EndChangeCheck())
            {
                //Is the replacement method supported
                if ((replacement == ShaderReplacementType.VR && SupportVRShader) || replacement != ShaderReplacementType.VR)
                {
                    //Record state for undo
                    Undo.RecordObject(Settings, "Shader replacement type");

                    //Change shader replacement
                    Settings.Replacement = replacement;
                }
                else
                {
                    EditorUtility.DisplayDialog("Not supported", "VR shaders require support for RGFloat Render Textures and a shader level of at least 40.", "Understood");
                }
            }

            if (replacement == ShaderReplacementType.Mobile)
            {
                EditorGUILayout.HelpBox("While forcing mobile shaders decals may appear incorrectly in the scene view. If you need to see decals in the scene view switch to standard shaders, then switch back before building.", MessageType.Warning);
            }
            if (replacement == ShaderReplacementType.VR)
            {
                EditorGUILayout.HelpBox("VR shaders require support for RGFloat rendertextures and a shader model of at least 40. Some older mobile devices may not meet these requirements; if developing for Google Cardboard please keep this in mind.", MessageType.Warning);
                EditorGUILayout.HelpBox("Experimental.", MessageType.Warning);
            }

            EditorGUILayout.Space();

            GUILayout.EndArea();
            GUI.EndGroup();
        }
 public void ResetGeneral()
 {
     replacement = ShaderReplacementType.Standard;
 }