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; [MenuItem("Tools/¹Ø¿¨±à¼­Æ÷/Open")] public static void OpenLevelEditor() { s_LevelEditorWindow = GetWindow(); } private void OnGUI() { 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); LevelExportSetting setting = GameObject.FindObjectOfType(); if(setting != null) { CommonFunction.WriteFile(json, setting.targetJsonFile); LogHelper.Log("[LevelEditor] output=" + setting.targetJsonFile); } AssetDatabase.Refresh(); } } }