场景导出小工具

来源:互联网 发布:奔跑吧小百合酱 知乎 编辑:程序博客网 时间:2024/06/06 03:32
    [MenuItem("Export/Export Scene")]    public static void CreateScene()    {        UnityEngine.SceneManagement.Scene scene = EditorSceneManager.GetActiveScene();        if (scene != null)         {            string dest_path = EditorSceneManager.GetActiveScene().path;            string scene_name = EditorSceneManager.GetActiveScene().name;            UnityEngine.SceneManagement.Scene export = EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects,NewSceneMode.Additive);            int index = dest_path.LastIndexOf("/");            string export_path = dest_path.Substring(0,index+1);            export_path = string.Concat(export_path, scene_name, "_export.unity");            EditorSceneManager.MarkSceneDirty(export);            EditorSceneManager.SaveScene(export, export_path);            scene = EditorSceneManager.GetSceneByPath(dest_path);            export = EditorSceneManager.GetSceneByPath(export_path);            EditorSceneManager.MergeScenes(scene, export);            GameObject[] go_list = export.GetRootGameObjects();            for (int i = 0; i < go_list.Length; i++ )            {                if (!go_list[i].tag.Equals("export"))                {                    GameObject.DestroyImmediate(go_list[i]);                }            }        }    }