// Replaces LastProjectPaths in window layouts used in tutorials so that e.g. // pre-saved Project window states work correctly. static void PrepareWindowLayouts() { AssetDatabase.FindAssets($"t:{typeof(TutorialContainer).FullName}") .Select(guid => AssetDatabase.LoadAssetAtPath <TutorialContainer>(AssetDatabase.GUIDToAssetPath(guid)).ProjectLayoutPath ) .Concat( AssetDatabase.FindAssets($"t:{typeof(Tutorial).FullName}") .Select(guid => AssetDatabase.LoadAssetAtPath <Tutorial>(AssetDatabase.GUIDToAssetPath(guid)).windowLayoutPath ) ) .Where(StringExt.IsNotNullOrEmpty) .Distinct() .ToList() .ForEach(layoutPath => TutorialManager.PrepareWindowLayout(layoutPath)); }
internal static void RunStartupCode() { var projectSettings = TutorialProjectSettings.instance; if (projectSettings.initialScene != null) { EditorSceneManager.OpenScene(AssetDatabase.GetAssetPath(projectSettings.initialScene)); } TutorialManager.WriteAssetsToTutorialDefaultsFolder(); // Ensure Editor is in predictable state EditorPrefs.SetString("ComponentSearchString", string.Empty); Tools.current = Tool.Move; var readme = TutorialWindow.FindReadme(); if (readme) { readme.LoadTutorialProjectLayout(); } // NOTE camera settings can be applied successfully only after potential layout changes if (projectSettings.InitialCameraSettings != null && projectSettings.InitialCameraSettings.enabled) { projectSettings.InitialCameraSettings.Apply(); } if (projectSettings.WelcomePage) { TutorialModalWindow.TryToShow(projectSettings.WelcomePage, () => {}); } var wnd = TutorialManager.GetTutorialWindow(); if (wnd) { wnd.showStartHereMarker = true; } }
/// <summary> /// Loads the tutorial project layout /// </summary> public void LoadTutorialProjectLayout() { TutorialManager.LoadWindowLayoutWorkingCopy(ProjectLayoutPath); }
public void LoadTutorialProjectLayout() { File.Copy(projectLayoutPath, k_UserLayoutPath, overwrite: true); TutorialManager.LoadWindowLayout(k_UserLayoutPath); }