Exemple #1
0
 public void UnloadScene(SubsceneTag tag, bool editMode)
 {
     tag.loaded = false;
     //Call OnUnload();
     if (editMode)
     {
         var scene = EditorSceneManager.CloseScene(tempRef, false);
     }
     else
     {
         var scene = SceneManager.UnloadSceneAsync(tempRef);
     }
 }
Exemple #2
0
    public void UnloadScene(string tag_name, bool editMode)
    {
        SubsceneTag tag = FindTagFromName(tag_name);

        tag.loaded = false;
        //Call OnUnload();
        if (editMode)
        {
            var scene = EditorSceneManager.CloseScene(tempRef, false);
            EditorSceneManager.MarkAllScenesDirty();
        }
        else
        {
            var scene = SceneManager.UnloadSceneAsync(tempRef);
        }
    }
Exemple #3
0
    public void ToggleLoad(string tag, bool editMode)
    {
        SubsceneTag referenceTag = FindTagFromName(tag);

        if (referenceTag == null)
        {
            return;
        }

        if (referenceTag.loaded)
        {
            UnloadScene(referenceTag, editMode);
        }
        else
        {
            LoadScene(referenceTag, editMode);
        }
    }
Exemple #4
0
    public void LoadScene(SubsceneTag tag, bool editMode)
    {
        tag.loaded = true;

        if (editMode)
        {
            var scene = EditorSceneManager.OpenScene(Application.dataPath + "/" + tag.parentID + "/SubScenes/" + tag.sceneTagName + "_SubScene" + ".unity", OpenSceneMode.Additive);
            tempRef = scene;
            EditorSceneManager.MarkAllScenesDirty();
        }
        else
        {
            Scene s     = SceneManager.GetSceneByName(tag + "_SubScene");
            var   scene = SceneManager.LoadSceneAsync(tag + "_SubScene", LoadSceneMode.Additive);

            tempRef = s;
        }

        //Call PreAWake(); on all components of type SceneMonoBehaviour
    }
Exemple #5
0
    public void LoadInObjects(List <GameObject> objects, string tag, bool editMode)
    {
        SubsceneTag referenceTag = FindTagFromName(tag);

        if (referenceTag.loaded)
        {
            Scene s = SceneManager.GetSceneByName(referenceTag.sceneTagName + "_SubScene");

            for (int i = 0; i < objects.Count; i++)
            {
                EditorSceneManager.MoveGameObjectToScene(objects[i], s);
            }

            EditorSceneManager.MarkAllScenesDirty();
        }
        else
        {
            LoadScene(referenceTag, editMode);
            Debug.LogError("Needed to load scene, retry loading.");
        }
    }
Exemple #6
0
    //EditorSceneManager.MoveGameObjectToScene(selectedTerrain.terrain.gameObject, newScene);

    public void CreateScene(SubsceneTag tag, string ID)
    {
        if (tagNames.Contains(tag.sceneTagName))
        {
            return;
        }

        AddNewTag(tag);

        System.Collections.Generic.List <EditorBuildSettingsScene> scenes = new System.Collections.Generic.List <EditorBuildSettingsScene>();
        //Can just use copy from
        foreach (EditorBuildSettingsScene s in EditorBuildSettings.scenes)
        {
            scenes.Add(s);
        }

        var originalScene = EditorSceneManager.GetActiveScene();
        var newScene      = EditorSceneManager.NewScene(NewSceneSetup.EmptyScene, NewSceneMode.Additive);

        newScene.name = tag.sceneTagName + "_SubScene";


        string sT = tag.sceneTagName;

        var folder = Directory.CreateDirectory(Application.dataPath + "/" + ID + "/SubScenes");

        EditorSceneManager.SaveScene(newScene, Application.dataPath + "/" + ID + "/SubScenes/" + sT + "_SubScene" + ".unity");


        EditorSceneManager.SetActiveScene(originalScene);
        scenes.Add(new EditorBuildSettingsScene(Application.dataPath + "/" + ID + "/SubScenes/" + sT + "_SubScene" + ".unity", true));
        EditorBuildSettings.scenes = scenes.ToArray();
        EditorSceneManager.MarkAllScenesDirty();

        tag.loaded = true;
    }
Exemple #7
0
 public void AddNewTag(SubsceneTag tag)
 {
     tagNames.Add(tag.sceneTagName);
     tagReference.Add(tag);
 }