예제 #1
0
 // 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));
 }
예제 #2
0
        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;
            }
        }
예제 #3
0
 /// <summary>
 /// Loads the tutorial project layout
 /// </summary>
 public void LoadTutorialProjectLayout()
 {
     TutorialManager.LoadWindowLayoutWorkingCopy(ProjectLayoutPath);
 }
예제 #4
0
 public void LoadTutorialProjectLayout()
 {
     File.Copy(projectLayoutPath, k_UserLayoutPath, overwrite: true);
     TutorialManager.LoadWindowLayout(k_UserLayoutPath);
 }