private void Buttons() { bool enabled = GUI.enabled; GUI.enabled &= !EditorApplication.isPlayingOrWillChangePlaymode; bool flag = LightModeUtil.Get().IsWorkflowAuto(); if (Lightmapping.lightingDataAsset && !Lightmapping.lightingDataAsset.isValid) { EditorGUILayout.HelpBox(Lightmapping.lightingDataAsset.validityErrorMessage, MessageType.Warning); } EditorGUILayout.Space(); GUILayout.BeginHorizontal(new GUILayoutOption[0]); GUILayout.FlexibleSpace(); EditorGUI.BeginChangeCheck(); flag = GUILayout.Toggle(flag, LightingWindow.Styles.ContinuousBakeLabel, new GUILayoutOption[0]); if (EditorGUI.EndChangeCheck()) { LightModeUtil.Get().SetWorkflow(flag); } using (new EditorGUI.DisabledScope(flag)) { bool flag2 = flag || !Lightmapping.isRunning; if (flag2) { if (EditorGUI.ButtonWithDropdownList(LightingWindow.Styles.BuildLabel, LightingWindow.s_BakeModeOptions, new GenericMenu.MenuFunction2(this.BakeDropDownCallback), new GUILayoutOption[] { GUILayout.Width(180f) })) { this.DoBake(); GUIUtility.ExitGUI(); } } else { if (LightmapEditorSettings.giBakeBackend == LightmapEditorSettings.GIBakeBackend.PathTracer && LightModeUtil.Get().AreBakedLightmapsEnabled() && GUILayout.Button("Force Stop", new GUILayoutOption[] { GUILayout.Width(150f) })) { Lightmapping.ForceStop(); } if (GUILayout.Button("Cancel", new GUILayoutOption[] { GUILayout.Width(150f) })) { Lightmapping.Cancel(); UsabilityAnalytics.Track("/LightMapper/Cancel"); } } } GUILayout.EndHorizontal(); EditorGUILayout.Space(); GUI.enabled = enabled; }
void Buttons() { InitLightmapSettings(); m_LightmapSettings.Update(); using (new EditorGUI.DisabledScope(EditorApplication.isPlayingOrWillChangePlaymode)) { if (Lightmapping.lightingDataAsset && !Lightmapping.lightingDataAsset.isValid) { EditorGUILayout.HelpBox(Lightmapping.lightingDataAsset.validityErrorMessage, MessageType.Warning); } EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); Rect rect = GUILayoutUtility.GetRect(Styles.ContinuousBakeLabel, GUIStyle.none); EditorGUI.BeginProperty(rect, Styles.ContinuousBakeLabel, m_WorkflowMode); bool iterative = m_WorkflowMode.intValue == (int)Lightmapping.GIWorkflowMode.Iterative; // Continous mode checkbox EditorGUI.BeginChangeCheck(); iterative = GUILayout.Toggle(iterative, Styles.ContinuousBakeLabel); if (EditorGUI.EndChangeCheck()) { m_WorkflowMode.intValue = (int)(iterative ? Lightmapping.GIWorkflowMode.Iterative : Lightmapping.GIWorkflowMode.OnDemand); } EditorGUI.EndProperty(); using (new EditorGUI.DisabledScope(iterative)) { // Bake button if we are not currently baking bool showBakeButton = iterative || !Lightmapping.isRunning; if (showBakeButton) { if (EditorGUI.ButtonWithDropdownList(Styles.BuildLabel, Styles.BakeModeStrings, BakeDropDownCallback, GUILayout.Width(170))) { DoBake(); // DoBake could've spawned a save scene dialog. This breaks GUI on mac (Case 490388). // We work around this with an ExitGUI here. GUIUtility.ExitGUI(); } } // Cancel button if we are currently baking else { // Only show Force Stop when using the PathTracer backend if (LightmapEditorSettings.lightmapper == LightmapEditorSettings.Lightmapper.ProgressiveCPU && m_EnabledBakedGI.boolValue && GUILayout.Button("Force Stop", GUILayout.Width(Styles.ButtonWidth))) { Lightmapping.ForceStop(); } if (GUILayout.Button("Cancel", GUILayout.Width(Styles.ButtonWidth))) { Lightmapping.Cancel(); } } } GUILayout.EndHorizontal(); EditorGUILayout.Space(); } m_LightmapSettings.ApplyModifiedProperties(); }
private void Buttons() { bool enabled = GUI.enabled; GUI.enabled &= !EditorApplication.isPlayingOrWillChangePlaymode; if (Lightmapping.lightingDataAsset && !Lightmapping.lightingDataAsset.isValid) { EditorGUILayout.HelpBox(Lightmapping.lightingDataAsset.validityErrorMessage, MessageType.Warning); } EditorGUILayout.Space(); GUILayout.BeginHorizontal(new GUILayoutOption[0]); GUILayout.FlexibleSpace(); Rect rect = GUILayoutUtility.GetRect(LightingWindow.Styles.ContinuousBakeLabel, GUIStyle.none); EditorGUI.BeginProperty(rect, LightingWindow.Styles.ContinuousBakeLabel, this.m_WorkflowMode); bool flag = this.m_WorkflowMode.intValue == 0; EditorGUI.BeginChangeCheck(); flag = GUILayout.Toggle(flag, LightingWindow.Styles.ContinuousBakeLabel, new GUILayoutOption[0]); if (EditorGUI.EndChangeCheck()) { this.m_WorkflowMode.intValue = ((!flag) ? 1 : 0); } EditorGUI.EndProperty(); using (new EditorGUI.DisabledScope(flag)) { bool flag2 = flag || !Lightmapping.isRunning; if (flag2) { if (EditorGUI.ButtonWithDropdownList(LightingWindow.Styles.BuildLabel, LightingWindow.s_BakeModeOptions, new GenericMenu.MenuFunction2(this.BakeDropDownCallback), new GUILayoutOption[] { GUILayout.Width(170f) })) { this.DoBake(); GUIUtility.ExitGUI(); } } else { if (LightmapEditorSettings.lightmapper == LightmapEditorSettings.Lightmapper.PathTracer && this.m_EnabledBakedGI.boolValue && GUILayout.Button("Force Stop", new GUILayoutOption[] { GUILayout.Width(150f) })) { Lightmapping.ForceStop(); } if (GUILayout.Button("Cancel", new GUILayoutOption[] { GUILayout.Width(150f) })) { Lightmapping.Cancel(); UsabilityAnalytics.Track("/LightMapper/Cancel"); } } } GUILayout.EndHorizontal(); EditorGUILayout.Space(); GUI.enabled = enabled; }