using LitJson; using System.Collections; using System.Collections.Generic; using UnityEditor; using UnityEngine; using WK; using WK.Data; public class LevelEditor : EditorWindow { private static LevelEditor s_LevelEditorWindow; private string m_StageOutFile = "Assets/Bundle/stages/"; [MenuItem("Tools/¹Ø¿¨±à¼­Æ÷/Open")] public static void OpenLevelEditor() { s_LevelEditorWindow = GetWindow(); } private void OnGUI() { m_StageOutFile = GUILayout.TextField(m_StageOutFile); if(GUILayout.Button("ÐòÁл¯")) { StageMetadata stageMetadata = new StageMetadata(); StageEntityBase[] entites = GameObject.FindObjectsOfType(); if(entites != null && entites.Length > 0) { for(int i = 0; i < entites.Length; ++i) { StageEntityBase entity = entites[i]; if (entity == null) continue; GameObject go = entity.gameObject; if (go.name.StartsWith("~")) continue; var meta = entity.OnSerialize(); if(meta != null) { stageMetadata.Write(meta); } } } string json = JsonMapper.ToJson(stageMetadata); CommonFunction.WriteFile(json, m_StageOutFile); } } }