static void BakeUpdate( ) { var p = Lightmapping.buildProgress; if (EditorUtility.DisplayCancelableProgressBar("Boiling Prefabs", "Baking them lights...", p)) { Lightmapping.ForceStop( ); BakeFinished( ); } }
void OnGUI() { _pathToScenes = EditorGUILayout.TextField("Path To Scenes", _pathToScenes); GUILayout.Space(1); _lightMapResIndex = EditorGUILayout.Popup("Lightmap resolution", _lightMapResIndex, _lightmapResolution); GUILayout.Space(1); var paths = new string[] { _pathToScenes }; var p = AssetDatabase.FindAssets("t:scene", paths); var list = new List <string>(); _scrollPosition = EditorGUILayout.BeginScrollView(_scrollPosition); foreach (var item in p) { var i = AssetDatabase.GUIDToAssetPath(item); list.Add(i); if (!_sceneToggle.ContainsKey(i)) { _sceneToggle.Add(i, false); } EditorGUILayout.BeginHorizontal(); EditorGUILayout.Toggle(_sceneToggle[i]); EditorGUILayout.LabelField(i); EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndScrollView(); if (GUILayout.Button("BAKE LIGHTS !") && !_baking) { _baking = true; BakeLights(list); } if (_baking) { EditorGUILayout.LabelField("Scenes Already Baked and Baking:"); foreach (var item in _scenesBuilt) { var splitted = item.Split('/'); EditorGUILayout.LabelField(splitted[splitted.Length - 1]); } if (GUILayout.Button("FORCE STOP BAKING !")) { Lightmapping.ForceStop(); _baking = false; _sceneToggle = new Dictionary <string, bool>(); } } }
public static void StopBake() { if (!Lightmapping.isRunning) { return; } Lightmapping.Cancel(); if (Lightmapping.isRunning) { Lightmapping.ForceStop(); } }
void OnGUI() { SetupHorizontalBoxStyle(); SetupStatusBoxStyle(); SetupBoxStyle(); // Row GUILayout.BeginHorizontal("", m_HorizontalStyle); //GUILayout.Height(175); if (GUI.Button(new Rect(10, 10, 25, 25), ButtonIconBrushMode, GUIStyle.none)) { ToggleBrushMode(); UpdateBrushMode(); } if (GUI.Button(new Rect(40, 10, 25, 25), ButtonIconNormal, GUIStyle.none)) { UseNormalDirection = !UseNormalDirection; UpdateBrushNormal(); } if (GUI.Button(new Rect(70, 10, 25, 25), ButtonIconStroke, GUIStyle.none)) { ToggleStrokeMode(); UpdateBrushStroke(); } if (GUI.Button(new Rect(100, 10, 25, 25), ButtonIconRandomizePosition, GUIStyle.none)) { RandomizePosition = !RandomizePosition; UpdateBrushRandomizePosition(); } if (GUI.Button(new Rect(130, 10, 25, 25), ButtonIconRandomizeRotation, GUIStyle.none)) { RandomizeRotation = !RandomizeRotation; UpdateBrushRandomizeRotation(); } if (GUI.Button(new Rect(160, 10, 25, 25), ButtonIconRandomizeScale, GUIStyle.none)) { RandomizeScale = !RandomizeScale; UpdateBrushRandomizeScale(); } if (GUI.Button(new Rect(190, 10, 25, 25), ButtonIconGrid, GUIStyle.none)) { CUtility.ShowGrid = !CUtility.ShowGrid; UpdateGrid(); } if (GUI.Button(new Rect(220, 10, 25, 25), ButtonIconShadow, GUIStyle.none)) { ToggleShadows = !ToggleShadows; UpdateShadow(); } if (GUI.Button(new Rect(245, 10, 25, 25), ButtonIconLight, GUIStyle.none)) { ToggleLighting = !ToggleLighting; UpdateLighting(); } /* * if (GUI.Button(new Rect(270, 10, 25, 25), ButtonIconLightBake, GUIStyle.none)) * { * Lightmapping.Bake(); * //ToggleLighting = !ToggleLighting; * //UpdateLighting(); * } * if (GUI.Button(new Rect(300, 10, 25, 25), ButtonIconLightClear, GUIStyle.none)) * { * Lightmapping.Clear(); * //ToggleLighting = !ToggleLighting; * //UpdateLighting(); * }*/ GUILayout.Space(125); GUILayout.Space(125); GUILayout.Space(125); GUILayout.Space(125); if (GUILayout.Button("BakeLight")) { Lightmapping.Bake(); } if (GUILayout.Button("Stop")) { Lightmapping.ForceStop(); } if (GUILayout.Button("Clear")) { Lightmapping.Clear(); } if (GUILayout.Button("BakeOcclusion")) { StaticOcclusionCulling.Compute(); } if (GUILayout.Button("BakeAstar")) { //StaticOcclusionCulling.Compute(); } /* * if (GUILayout.Button("SNewScene")) * { * cSceneManagement.NewScene(); * } * * if (GUILayout.Button("SReloadWorkingScene")) * { * cSceneManagement.ReloadWorkingScene(); * } * * * * GUILayout.Label("MultiObject:", GUILayout.MaxWidth(50)); * GameObject = (GameObject) EditorGUILayout.ObjectField("", GameObject, typeof(GameObject), true, * GUILayout.MaxWidth(90)); * if (GUILayout.Button("Add(N)"))//not yet working * { * cBrushThumbnailer.CreateThumbnail(GameObject); * //cThumbnailer.CreateThumbnail() * //AssetDatabase.Refresh(); * //SaveSettings(); * } * * if (GUILayout.Button("LoadSettings(N)")) //not yet working * { * LoadSettings(); * } */ GUILayout.EndHorizontal(); // // /****************************************************************************************** * New RowNew RowNew RowNew RowNew RowNew RowNew RowNew RowNew RowNew RowNew RowNew RowNew RowNew RowNew RowNew Row *******************************************************************************************/ // Row GUILayout.BeginHorizontal("", GUIStyle.none); GameObject = (GameObject)EditorGUILayout.ObjectField("", GameObject, typeof(GameObject), true, GUILayout.MaxWidth(90)); GUILayout.Label("Radius:", GUILayout.MaxWidth(50)); Radius = EditorGUILayout.Slider("", Radius, 1f, 50f, GUILayout.MaxWidth(120)); GUILayout.Label("Intensity:", GUILayout.MaxWidth(55)); PaintIntensity = EditorGUILayout.IntSlider("", PaintIntensity, 1, 100, GUILayout.MaxWidth(120)); GUILayout.Label("Focal Shift:", GUILayout.MaxWidth(70)); FocalShift = EditorGUILayout.Slider("", FocalShift, -1, 1, GUILayout.MaxWidth(120)); CumulativeProbability = EditorGUILayout.CurveField("", CumulativeProbability, GUILayout.MaxWidth(40)); GUILayout.Label("Paint surface:", GUILayout.MaxWidth(80)); m_PaintSurface = (PaintSurfaceType)EditorGUILayout.EnumPopup("", m_PaintSurface, GUILayout.MaxWidth(55)); GUILayout.Label("Record session", GUILayout.MaxWidth(90)); RecordSession = EditorGUILayout.Toggle("", RecordSession, GUILayout.MaxWidth(40)); GUILayout.EndHorizontal(); /// Row GUILayout.BeginHorizontal("", GUIStyle.none); GUILayout.Label("Size:", GUILayout.MaxWidth(40)); MinSize = EditorGUILayout.FloatField("", MinSize, GUILayout.MaxWidth(35)); EditorGUILayout.MinMaxSlider(ref MinSize, ref MaxSize, MinLimit, MaxLimit, GUILayout.MaxWidth(60)); MaxSize = EditorGUILayout.FloatField("", MaxSize, GUILayout.MaxWidth(35)); GUILayout.Space(20); GUILayout.Space(20); GUILayout.Label("rX:", GUILayout.MaxWidth(20)); MaxRotationX = EditorGUILayout.FloatField("", MaxRotationX, GUILayout.MaxWidth(30)); GUILayout.Label("rY:", GUILayout.MaxWidth(20)); MaxRotationY = EditorGUILayout.FloatField("", MaxRotationY, GUILayout.MaxWidth(30)); GUILayout.Label("rZ:", GUILayout.MaxWidth(20)); MaxRotationZ = EditorGUILayout.FloatField("", MaxRotationZ, GUILayout.MaxWidth(30)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("", m_StatusBarStyle); GUILayout.Label("Status:"); GUILayout.Label(MyStatus); GUILayout.EndHorizontal(); }
public static void StopBakeLighting() { Lightmapping.ForceStop(); }
private void BakingHelper() { #if UNITY_EDITOR Shader.SetGlobalFloat("_NoLightmap", LightmapSettings.lightmaps.Length == 0 ? 1 : 0); if (!Application.isPlaying) { if (RenderSettings.ambientMode == UnityEngine.Rendering.AmbientMode.Trilight) { if (Lightmapping.isRunning && !Switch) { Switch = true; EquatorColorMemo = RenderSettings.ambientEquatorColor; SkyColorMemo = RenderSettings.ambientSkyColor; GroundColorMemo = RenderSettings.ambientGroundColor; mrs = FindObjectsOfType <MeshRenderer>(); mrShadows = new ShadowCastingMode[mrs.Length]; for (int i = 0; i < mrs.Length; i++) { if (mrs[i] != null) { mrShadows[i] = mrs[i].shadowCastingMode; if (mrs[i].shadowCastingMode == ShadowCastingMode.Off) { mrs[i].shadowCastingMode = ShadowCastingMode.On; } } else { mrShadows[i] = ShadowCastingMode.Off; } } if (TestSun()) { SunColorMemo = RenderSettings.sun.color; SunIntensityMemo = RenderSettings.sun.intensity; RenderSettings.sun.color = Color.white; RenderSettings.sun.intensity = 1; if (InDoor) { RenderSettings.sun.intensity = 0; RenderSettings.sun.shadows = LightShadows.None; } //RenderSettings.sun.bounceIntensity = 1; } if (InDoor) { ChangeShadowCastingMode(UnityEngine.Rendering.ShadowCastingMode.On); Shader.SetGlobalFloat("_SunOutDoor", 1); } RenderSettings.ambientEquatorColor = Color.black; RenderSettings.ambientSkyColor = Color.black; RenderSettings.ambientGroundColor = Color.black; } else if (!Lightmapping.isRunning && Switch) { Switch = false; EquatorColorForMixer = RenderSettings.ambientEquatorColor = EquatorColorMemo; SkyColorForMixer = RenderSettings.ambientSkyColor = SkyColorMemo; GroundColorForMixer = RenderSettings.ambientGroundColor = GroundColorMemo; for (int i = 0; i < mrs.Length; i++) { if (mrs[i] != null) { mrs[i].shadowCastingMode = mrShadows[i]; } } if (TestSun()) { SunColorForMixer = RenderSettings.sun.color = SunColorMemo; SunIntensityForMixer = RenderSettings.sun.intensity = SunIntensityMemo; RenderSettings.sun.shadows = LightShadows.Soft; } if (InDoor) { ChangeShadowCastingMode(UnityEngine.Rendering.ShadowCastingMode.Off); Shader.SetGlobalFloat("_SunOutDoor", 0); } } } else if (Lightmapping.isRunning) { Debug.LogError("错误的环境光模式,请设置为Gradient"); Lightmapping.ForceStop(); } } #endif }