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; }