bool ISceneTemplatePipeline.IsValidTemplateForInstantiation(SceneTemplateAsset sceneTemplateAsset) { var hdrpAsset = HDRenderPipeline.defaultAsset; if (hdrpAsset == null) { return(false); } return(!hdrpAsset.currentPlatformRenderPipelineSettings.supportRayTracing); }
void ISceneTemplatePipeline.AfterTemplateInstantiation(SceneTemplateAsset sceneTemplateAsset, Scene scene, bool isAdditive, string sceneName) { }
void ISceneTemplatePipeline.BeforeTemplateInstantiation(SceneTemplateAsset sceneTemplateAsset, bool isAdditive, string sceneName) { }
/// <summary> /// Event called after the template is instantiated and the new scene is still loaded. /// </summary> /// <param name="sceneTemplateAsset">Scene Template asset that will be instantiated</param> /// <param name="scene">The newly created scene</param> /// <param name="isAdditive">Is the new scene created in additive mode.</param> /// <param name="sceneName">What is the path of the new scene (could be empty if untitled)</param> public virtual void AfterTemplateInstantiation(SceneTemplateAsset sceneTemplateAsset, Scene scene, bool isAdditive, string sceneName) { }
/// <summary> /// Event called before the template is instantiated. /// </summary> /// <param name="sceneTemplateAsset">Scene Template asset that will be instantiated</param> /// <param name="isAdditive">Is the new scene created in additive mode.</param> /// <param name="sceneName">What is the path of the new scene (could be empty if untitled)</param> public virtual void BeforeTemplateInstantiation(SceneTemplateAsset sceneTemplateAsset, bool isAdditive, string sceneName) { }
/// <summary> /// Event called before we display the New Template Dialog to determine if this template should be available to user. /// </summary> /// <param name="sceneTemplateAsset">Scene Template asset that would be avauilable in New Scene Dialog</param> public virtual bool IsValidTemplateForInstantiation(SceneTemplateAsset sceneTemplateAsset) { return(true); }
private void OnGUI() { gameName = EditorGUILayout.TextField("Name of your Game: ", gameName); if (GUILayout.Button("Add Game")) { //create folder to put new game files in string path = "Assets/Games/" + gameName; string guid = AssetDatabase.CreateFolder("Assets/Games", gameName); string newFolderPath = AssetDatabase.GUIDToAssetPath(guid); //create menu for game from template Scene newMenuScene; SceneTemplateAsset sceneTemplate = (SceneTemplateAsset)AssetDatabase.LoadAssetAtPath("Assets/General Assets/Scenes/Templates/MenuTemplate.scenetemplate", typeof(SceneTemplateAsset)); if (sceneTemplate == null) { Debug.Log("menu template not found"); return; } else { newMenuScene = SceneTemplateService.Instantiate(sceneTemplate, true, "Assets/Games/MainMenus/" + gameName + "~Menu.unity").scene; } //create menu for game from template Scene newHighScoreScene; SceneTemplateAsset sceneTemplateHighscore = (SceneTemplateAsset)AssetDatabase.LoadAssetAtPath("Assets/General Assets/Scenes/Templates/HighscoreTemplate.scenetemplate", typeof(SceneTemplateAsset)); if (sceneTemplateHighscore == null) { Debug.Log("highscore template not found"); return; } else { newHighScoreScene = SceneTemplateService.Instantiate(sceneTemplateHighscore, true, "Assets/Games/Highscores/" + gameName + "Highscores.unity").scene; } GameObject.Find("PlayButton"); //create scene for actual game var newGameScene = EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects, NewSceneMode.Additive); newGameScene.name = gameName; EditorSceneManager.SaveScene(newGameScene, path + "/" + gameName + ".unity"); Debug.Log(newGameScene.path); //add new scenes to build settings string[] ScenesList = new string[] { newMenuScene.path, newHighScoreScene.path, newGameScene.path }; EditorBuildSettingsScene[] original = EditorBuildSettings.scenes; EditorBuildSettingsScene[] newSettings = new EditorBuildSettingsScene[original.Length + ScenesList.Length]; System.Array.Copy(original, newSettings, original.Length); int index = original.Length; for (int i = 0; i < ScenesList.Length; i++) { EditorBuildSettingsScene sceneToAdd = new EditorBuildSettingsScene(ScenesList[i], true); newSettings[index] = sceneToAdd; index++; } EditorBuildSettings.scenes = newSettings; AssetDatabase.SaveAssets(); Debug.Log("Game successfully added"); Close(); } }