Exemple #1
0
        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;
        }
Exemple #2
0
        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);
        }