/// <summary> /// Sets up the current scene and creates a new training course for this scene. /// </summary> /// <param name="courseName">Name of the training course.</param> public static void SetupSceneAndTraining(string courseName) { TrainingSceneSetup.Run(); string errorMessage = null; if (CourseAssetUtils.DoesCourseAssetExist(courseName) || CourseAssetUtils.CanCreate(courseName, out errorMessage)) { if (CourseAssetUtils.DoesCourseAssetExist(courseName)) { CourseAssetManager.Load(courseName); } else { CourseAssetManager.Import(EntityFactory.CreateCourse(courseName)); AssetDatabase.Refresh(); } SetCourseInCurrentScene(courseName); } if (string.IsNullOrEmpty(errorMessage) == false) { Debug.LogError(errorMessage); } try { EditorSceneManager.SaveScene(SceneManager.GetActiveScene()); } catch (Exception ex) { Debug.LogError(ex); } }
/// <summary> /// Creates and saves a new simple example scene. /// </summary> /// <remarks>The new scene is meant to be used for step by step guides.</remarks> public static void CreateNewSimpleExampleScene() { string courseName = SimpleExampleName; int counter = 1; while (CourseAssetUtils.DoesCourseAssetExist(courseName) || CourseAssetUtils.CanCreate(courseName, out string errorMessage) == false) { courseName = $"{SimpleExampleName}_{counter}"; counter++; } CreateNewScene(courseName); GameObject sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere); sphere.name = "Sphere"; sphere.transform.position = new Vector3(0f, 0.5f, 2f); GameObject plane = GameObject.CreatePrimitive(PrimitiveType.Plane); plane.name = "Plane"; plane.transform.localScale = new Vector3(2f, 2f, 2f); SetupSceneAndTraining(courseName); }