private void OnGUI() { GUILayout.BeginHorizontal(); m_mapDirectory = EditorGUILayout.TextField(m_mapDirectory); if (GUILayout.Button("保存路径", GUILayout.Width(100))) { EditorPrefs.SetString(mapDirectoryKey, m_mapDirectory); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); m_configPath = EditorGUILayout.TextField(m_configPath); if (GUILayout.Button("加载配置", GUILayout.Width(100))) { m_config = AssetDatabase.LoadAssetAtPath <GameConfig>(m_configPath); EditorPrefs.SetString(configPathKey, m_configPath); } GUILayout.EndHorizontal(); EditorGUILayout.Separator(); GUI.enabled = m_config != null; m_mapName = EditorGUILayout.TextField(m_mapName); if (GUILayout.Button("创建新地图")) { CreateNewMap(); } GUI.enabled = true; EditorGUILayout.Separator(); m_map = EditorGUILayout.ObjectField(m_map, typeof(Config.MapConfig), false) as Config.MapConfig; GUI.enabled = m_map != null && m_config != null; if (GUILayout.Button("导入地图")) { ImportMap(); } GUI.enabled = m_map != null; if (GUILayout.Button("导出地图")) { ExportMap(); } GUI.enabled = m_config != null; EditorGUILayout.Separator(); if (GUILayout.Button("生成MapBlockIdentifier")) { AttachMapBlockIdentifier(); } GUI.enabled = true; }
private void CreateNewMap() { if (string.IsNullOrEmpty(m_mapName)) { ShowTip("文件名不能为空"); return; } var path = Path.Combine(m_mapDirectory, m_mapName + ".asset"); if (File.Exists(path)) { ShowTip("文件已存在,请换个名字继续"); return; } if (!Directory.Exists(m_mapDirectory)) { Directory.CreateDirectory(m_mapDirectory); } m_map = ScriptableObject.CreateInstance <Config.MapConfig>(); AssetDatabase.CreateAsset(m_map, path); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); var mapRoot = GetMapRoot(); ClearMap(mapRoot); }