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)
 {
 }
Esempio n. 4
0
 /// <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)
 {
 }
Esempio n. 5
0
 /// <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)
 {
 }
Esempio n. 6
0
 /// <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);
 }
Esempio n. 7
0
    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();
        }
    }