private void DoBake() { Analytics.Track("/LightMapper/Start"); Analytics.Event("LightMapper", "Mode", LightmapSettings.lightmapsMode.ToString(), 1); Analytics.Event("LightMapper", "Button", "BakeScene", 1); Lightmapping.BakeAsync(); }
public static void BakeMultipleScenes(string[] paths) { if (paths.Length != 0) { for (int i = 0; i < paths.Length; i++) { for (int j = i + 1; j < paths.Length; j++) { if (paths[i] == paths[j]) { throw new Exception("no duplication of scenes is allowed"); } } } if (EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo()) { SceneSetup[] sceneSetup = EditorSceneManager.GetSceneManagerSetup(); Lightmapping.OnCompletedFunction OnBakeFinish = null; OnBakeFinish = delegate { EditorSceneManager.SaveOpenScenes(); EditorSceneManager.RestoreSceneManagerSetup(sceneSetup); Lightmapping.completed = (Lightmapping.OnCompletedFunction)Delegate.Remove(Lightmapping.completed, OnBakeFinish); }; EditorSceneManager.SceneOpenedCallback BakeOnAllOpen = null; BakeOnAllOpen = delegate(Scene scene, OpenSceneMode loadSceneMode) { if (EditorSceneManager.loadedSceneCount == paths.Length) { Lightmapping.BakeAsync(); Lightmapping.completed = (Lightmapping.OnCompletedFunction)Delegate.Combine(Lightmapping.completed, OnBakeFinish); EditorSceneManager.sceneOpened -= BakeOnAllOpen; } }; EditorSceneManager.sceneOpened += BakeOnAllOpen; EditorSceneManager.OpenScene(paths[0]); for (int k = 1; k < paths.Length; k++) { EditorSceneManager.OpenScene(paths[k], OpenSceneMode.Additive); } } } }
private void DoBake() { Lightmapping.BakeAsync(); }