private static Tuple <string, SceneTemplateAsset> CreateTemplateFromScene(SceneAsset sourceScene) { var templatePath = Path.Combine(TestUtils.k_TestGeneratedFolder, "CreateTemplateFromSceneTest_template.asset").Replace("\\", "/"); var sceneTemplate = SceneTemplate.CreateTemplateFromScene(sourceScene, templatePath); return(Tuple.Create(templatePath, sceneTemplate)); }
public void Init() { TestUtils.CreateFolder(TestUtils.k_TestGeneratedFolder); // Create a new scene and a scene template for it var newScene = EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects, NewSceneMode.Single); EditorSceneManager.SaveScene(newScene, TestUtils.k_AssetsTempScene); var newSceneAsset = AssetDatabase.LoadAssetAtPath <SceneAsset>(TestUtils.k_AssetsTempScene); var sceneTemplateAsset = SceneTemplate.CreateTemplateFromScene(newSceneAsset, TestUtils.k_AssetsTempSceneTemplate); sceneTemplateAsset.templateName = "Test title"; sceneTemplateAsset.description = "Test description"; sceneTemplateAsset.preview = Texture2D.whiteTexture; }
private static bool GenerateNoCloneSceneSetup() { var sceneTemplateAsset = AssetDatabase.LoadAssetAtPath <SceneTemplateAsset>(TestUtils.k_NoCloneGeneratedTemplate); if (sceneTemplateAsset != null) { return(true); } var inProjectTestScenePath = Path.Combine(TestUtils.k_TestGeneratedTemplateFolder, TestUtils.k_NoCloneSceneName); var result = AssetDatabase.CopyAsset(TestUtils.k_NoCloneScene, inProjectTestScenePath); if (!result) { return(false); } var sceneAsset = AssetDatabase.LoadAssetAtPath <SceneAsset>(inProjectTestScenePath); if (sceneAsset == null) { return(false); } SceneTemplate.CreateTemplateFromScene(sceneAsset, TestUtils.k_NoCloneGeneratedTemplate); sceneTemplateAsset = AssetDatabase.LoadAssetAtPath <SceneTemplateAsset>(TestUtils.k_NoCloneGeneratedTemplate); if (sceneTemplateAsset == null) { return(false); } foreach (var dep in sceneTemplateAsset.dependencies) { dep.instantiationMode = TemplateInstantiationMode.Reference; } EditorUtility.SetDirty(sceneTemplateAsset); AssetDatabase.SaveAssets(); return(true); }