void OnCreateSceneTemplatePipeline() { var assetPath = AssetDatabase.GetAssetPath(serializedObject.targetObject.GetInstanceID()); var fileInfo = new FileInfo(assetPath); var folder = fileInfo.DirectoryName; var scriptAsset = SceneTemplateService.CreateNewSceneTemplatePipeline(folder) as MonoScript; if (scriptAsset == null) { return; } var pipelineProperty = serializedObject.FindProperty(SceneTemplateUtils.TemplatePipelineName); pipelineProperty.objectReferenceValue = scriptAsset; serializedObject.ApplyModifiedProperties(); }
private static bool CreateSceneFromTemplate(string templateAssetPath, bool loadAdditively) { var sceneAsset = AssetDatabase.LoadAssetAtPath <SceneTemplateAsset>(templateAssetPath); if (sceneAsset == null) { return(false); } if (!sceneAsset.isValid) { UnityEngine.Debug.LogError("Cannot instantiate scene template: scene is null or deleted."); return(false); } return(SceneTemplateService.Instantiate(sceneAsset, loadAdditively, null, SceneTemplateAnalytics.SceneInstantiationType.NewSceneMenu) != null); }