private void OnGUI()
    {
        EditorGUILayout.BeginHorizontal();
        if (GUILayout.Button("选中地形信息"))
        {
            GenerateTerrainsInfo();
        }
        if (GUILayout.Button("选择地形处理脚本"))
        {
            SelectDsl();
        }
        if (GUILayout.Button("处理选中场景地形"))
        {
            ProcessSelectedSceneNodes();
        }
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();
        GUILayout.Label("列表文件", GUILayout.Width(60));
        GUILayout.TextField(m_ListFile, 1024);
        if (GUILayout.Button("选择", GUILayout.Width(60)))
        {
            string path = EditorUtility.SaveFilePanel("请选择要保存对象列表的文件", string.Empty, "objlist", "txt");
            if (!string.IsNullOrEmpty(path))
            {
                m_ListFile = TerrainEditUtility.PathToAssetPath(path);
            }
        }
        EditorGUILayout.EndHorizontal();

        if (m_Samplers.Count > 0)
        {
            foreach (var pair in m_Samplers)
            {
                EditorGUILayout.BeginHorizontal();
                GUILayout.Label(pair.Key, GUILayout.Width(60));
                GUILayout.TextField(pair.Value, 1024);
                if (GUILayout.Button("选择", GUILayout.Width(60)))
                {
                    SelectImage(pair.Key, pair.Value);
                }
                EditorGUILayout.EndHorizontal();
            }
            if (m_EditedSamplers.Count > 0)
            {
                foreach (var pair in m_EditedSamplers)
                {
                    m_Samplers[pair.Key] = pair.Value;
                }
                m_EditedSamplers.Clear();
            }
        }

        m_Pos = EditorGUILayout.BeginScrollView(m_Pos, true, true);
        EditorGUILayout.TextArea(m_Text);
        EditorGUILayout.EndScrollView();
    }
    private void SelectImage(string key, string val)
    {
        string path = EditorUtility.OpenFilePanelWithFilters("请选择要图形文件", val, new[] { "Image files", "png,jpg,tga,bmp", "All files", "*" });

        if (!string.IsNullOrEmpty(path) && File.Exists(path))
        {
            path = TerrainEditUtility.PathToAssetPath(path);
            m_EditedSamplers[key] = path;
        }
    }