Ejemplo n.º 1
0
    //bool isfllowCamera = false;

    public void OnSceneGUI()
    {
        base.OnSceneGUI();
        if (uiMap == null)
        {
            uiMap = (UISceneMap)target;
        }

        Handles.BeginGUI();

        //规定GUI显示区域
        GUILayout.BeginArea(new Rect(100, 70, 200, 100));

        /*正在编辑*/
        GUILayout.Label(EditorStringConfig.getString(10030) + ":" + uiMap.gameObject.name);

        //GFGrid gfGrid = SceneEditorSettings.mapGrid;

        /*显示网格*/
        uiMap.isShowMap = GUILayout.Toggle(uiMap.isShowMap, EditorStringConfig.getString(10005));

        /*允许复活*/
        uiMap.mapData.canReborn = System.Convert.ToInt32(GUILayout.Toggle(System.Convert.ToBoolean(uiMap.mapData.canReborn), EditorStringConfig.getString(10039)));

        GUILayout.EndArea();
        Handles.EndGUI();
    }
Ejemplo n.º 2
0
 static void AddWindow()
 {
     //创建窗口
     //_this = (SceneEditor)EditorWindow.GetWindowWithRect (typeof (SceneEditor),wr,false,EditorStringConfig.getString(10028));
     _this = EditorWindow.GetWindow <SceneEditor>(EditorStringConfig.getString(10028), true);
     _this.Show();
 }
Ejemplo n.º 3
0
    public void OnSceneGUI()
    {
        if (npc == null)
        {
            npc = (UINPC)target;
        }

        base.OnSceneGUI();

        //开始绘制GUI
        Handles.BeginGUI();

        GUILayout.BeginArea(new Rect(SceneView.currentDrawingSceneView.position.width - 200, 100, 200, 200));

        /*true显示资源细节   false显示合并资源*/
        string SelectedName = !npc.npcSettingData.isMergeResource ? EditorStringConfig.getString(10043):EditorStringConfig.getString(10044);

        if (GUILayout.Button(SelectedName, GUILayout.Width(100), GUILayout.Height(20)))
        {
            npc.npcSettingData.isMergeResource = !npc.npcSettingData.isMergeResource;
            HideFlags flags = npc.npcSettingData.isMergeResource ? HideFlags.HideInHierarchy | HideFlags.HideInInspector : HideFlags.None;
            npc.SetChildrenGameObjectHideFlags(flags);
        }

        GUILayout.EndArea();


        Handles.EndGUI();
    }
Ejemplo n.º 4
0
    public void OnSceneGUI()
    {
        if (special == null)
        {
            special = (UISpecialArea)target;
        }

        base.OnSceneGUI();


        //开始绘制GUI
        Handles.BeginGUI();

        GUILayout.BeginArea(new Rect(SceneView.currentDrawingSceneView.position.width - 200, 100, 200, 200));

        /*转换到面   转换到线*/
        SelectedName = !special.DrawWireOrSurface ? EditorStringConfig.getString(10040):EditorStringConfig.getString(10041);


        if (GUILayout.Button(SelectedName, GUILayout.Width(100), GUILayout.Height(20)))
        {
            special.DrawWireOrSurface = !special.DrawWireOrSurface;
        }

        GUILayout.EndArea();


        Handles.EndGUI();
    }
Ejemplo n.º 5
0
    //创建种植物
    public static GameObject CreatePlant(string sourcePath, Vector3 worldpos, Vector3 scale, SceneElementType type, bool BornAtMap = true, Vector3 worldrotation = default(Vector3))
    {
        Object plantSource = AssetDatabase.LoadMainAssetAtPath(sourcePath);

        if (plantSource != null)
        {
            return(CreatePlant(plantSource, worldpos, scale, type, BornAtMap, worldrotation));
        }
        EditorUtility.DisplayDialog(EditorStringConfig.getString(10042), "Not found: " + sourcePath, EditorStringConfig.getString(10025));
        return(null);
    }
Ejemplo n.º 6
0
    //创建地图
    public static GameObject CreateMap(string sourcePath, Vector3 worldPos = default(Vector3), Vector2 mapGridSize = default(Vector2), Color GridGolor = default(Color))
    {
        Object mapSource = AssetDatabase.LoadMainAssetAtPath(sourcePath);

        if (mapSource != null)
        {
            return(CreateMap(mapSource, worldPos, mapGridSize));
        }
        EditorUtility.DisplayDialog(EditorStringConfig.getString(10042), "Not found: " + sourcePath, EditorStringConfig.getString(10025));
        return(null);
    }
Ejemplo n.º 7
0
    void ShowMapMenu()
    {
        if (SceneEditorSettings.SceneSourceFileObject == null)
        {
            SceneEditorSettings.SceneSourceFileObject = AssetDatabase.LoadMainAssetAtPath("Assets/Resources/UnPack/Scenes");
        }

        /*资源来源*/
        Object resultObject = EditorGUILayout.ObjectField(EditorStringConfig.getString(10012), SceneEditorSettings.SceneSourceFileObject, typeof(Object));

        bool isDifferentFromOld = resultObject != SceneEditorSettings.SceneSourceFileObject;

        SceneEditorSettings.SceneSourceFileObject = resultObject;

        if (SceneEditorSettings.SceneSourceFileObject != null)
        {
            if (isDifferentFromOld)
            {
                RefreshMapResources();
            }

            GUILayout.BeginHorizontal();

            /*地图名称*/
            currMapId = EditorGUILayout.Popup(EditorStringConfig.getString(10014), currMapId, mapNames.ToArray());
            /*刷新*/
            if (GUILayout.Button(EditorStringConfig.getString(10002), GUILayout.Width(50), GUILayout.Height(16)))
            {
                RefreshMapResources();
            }
            GUILayout.EndHorizontal();


            GUILayout.BeginHorizontal();
            /*创建*/
            if (GUILayout.Button(EditorStringConfig.getString(10015), GUILayout.Width(150), GUILayout.Height(40)))
            {
                SceneEditorTools.CreateMap(mapObject[currMapId], Vector3.zero);
            }

            /*载入配置表*/
            if (GUILayout.Button(EditorStringConfig.getString(10016), GUILayout.Width(150), GUILayout.Height(40)))
            {
                SceneEditorTools.AutoImportSettingFile();
            }
            GUILayout.EndHorizontal();
        }
    }
Ejemplo n.º 8
0
    void ShowZhongGuai(string[] FarmingType)
    {
        /*出生到地图上(锁定Y轴)*/
        BornAtMap = EditorGUILayout.Toggle(EditorStringConfig.getString(10017), BornAtMap);
        if (BornAtMap)
        {
            Vector2 bornPos = new Vector2(SceneEditorSettings.BronPostionX, SceneEditorSettings.BronPostionZ);
            /*出生坐标*/
            bornPos = EditorGUILayout.Vector2Field(EditorStringConfig.getString(10018), bornPos);
            SceneEditorSettings.BronPostionX = (int)bornPos.x;
            SceneEditorSettings.BronPostionZ = (int)bornPos.y;
        }
        else
        {
            Vector3 bornPos = new Vector3(SceneEditorSettings.BronPostionX, SceneEditorSettings.BronPostionY, SceneEditorSettings.BronPostionZ);
            /*出生坐标*/
            bornPos = EditorGUILayout.Vector3Field(EditorStringConfig.getString(10018), bornPos);
            SceneEditorSettings.BronPostionX = (int)bornPos.x;
            SceneEditorSettings.BronPostionY = (int)bornPos.y;
            SceneEditorSettings.BronPostionZ = (int)bornPos.z;
        }

        GUILayout.Space(20f);
        GUILayout.BeginHorizontal();
        /*创建*/
        if (GUILayout.Button(EditorStringConfig.getString(10015) + FarmingType[SceneEditorSettings.farmingTypeIndex], GUILayout.Width(150), GUILayout.Height(40)))
        {
            SceneEditorTools.CreatePlant(PlantSourceObject[PlantSourceIndex],
                                         new Vector3(SceneEditorSettings.BronPostionX, SceneEditorSettings.BronPostionY, SceneEditorSettings.BronPostionZ),
                                         Vector3.one,
                                         (SceneElementType)SceneEditorSettings.farmingTypeIndex,
                                         BornAtMap);
        }
        /*保存配置表*/
        if (GUILayout.Button(EditorStringConfig.getString(10019), GUILayout.Width(150), GUILayout.Height(40)))
        {
            SceneEditorTools.AutoGenerateSettingFile();
        }
        /*导出游戏数据*/
        if (GUILayout.Button(EditorStringConfig.getString(10020), GUILayout.Width(150), GUILayout.Height(40)))
        {
            SceneEditorTools.AutoGenerateGameData();
        }
        GUILayout.EndHorizontal();
    }
Ejemplo n.º 9
0
    public void OnSceneGUI()
    {
        UISceneElementBase baseTarget = (UISceneElementBase)target;

        if (baseTarget == null || !baseTarget.enabled)
        {
            return;
        }


        baseTarget.UpdateData();

        SceneCamera = SceneView.currentDrawingSceneView.camera;
        //Vector3 CameraPos = SceneCamera.transform.position;

        if (Event.current.isMouse)
        {
            if (Event.current.type == EventType.MouseDown)
            {
                OnPressAtDrawScene(true);
            }
            else if (Event.current.type == EventType.MouseUp)
            {
                OnPressAtDrawScene(false);
            }
        }
        if (Event.current.isKey)
        {
            if (Event.current.type == EventType.KeyDown)
            {
                OnKeyBoardDown(Event.current.keyCode);
            }
        }

        Handles.BeginGUI();
        GUILayout.BeginArea(new Rect(0, 0, 300, 100));
        //场景摄像机参考
        GUILayout.Label("SceneCamera " + EditorStringConfig.getString(10037) + ":" + SceneCamera.transform.position.ToString());
        GUILayout.Label("SceneCamera " + EditorStringConfig.getString(10038) + ":" + SceneCamera.transform.rotation.eulerAngles.ToString());
        GUILayout.EndArea();
        Handles.EndGUI();
    }
Ejemplo n.º 10
0
    public void OnSceneGUI()
    {
        if (element == null)
        {
            element = (UISceneElement)target;
        }

        if (element == null || !element.enabled)
        {
            return;
        }

        if (element.isDeleteGameObject)
        {
            //销毁
            EditorMemoryRecycle.RemoveMemory(element.gameObject);
            element.isDeleteGameObject = false;
        }


        base.OnSceneGUI();

        //反算屏幕坐标
        if (MoveFllowMouse)
        {
            //Debug.LogError("[MoveFllowMouse]"+MoveFllowMouse.ToString());
            Vector3 mypos = element.transform.position;
            if (element.settingData.Type == SceneElementType.NPC)
            {
                mypos.y = 0;
            }
            else
            {
                mypos.y = element.transform.localScale.y / 2f;
            }

            element.transform.position = mypos;
            Vector3 ScenePos      = SceneCamera.WorldToScreenPoint(element.transform.position);
            Vector3 mousePosition = Event.current.mousePosition;
            float   height        = SceneView.currentDrawingSceneView.position.height;
            mousePosition.y = height - mousePosition.y - 15f;
            mousePosition.z = ScenePos.z;
            Vector3 resultPos = SceneCamera.ScreenToWorldPoint(mousePosition);
            element.transform.position = resultPos;
        }


        //绘制文本框
        Handles.Label(element.transform.position + Vector3.up * 3,
                      element.transform.name + " : " + element.transform.position.ToString());

        //开始绘制GUI
        Handles.BeginGUI();

        //规定GUI显示区域
        GUILayout.BeginArea(new Rect(100, 100, 200, 400));

        //GUI绘制文本框
        /*正在编辑*/
        GUILayout.Label(EditorStringConfig.getString(10030) + ":" + element.gameObject.name);


        /*吸附到地图*/
        element.isAtMap = GUILayout.Toggle(element.isAtMap, EditorStringConfig.getString(10031));
//		/*鼠标跟随*/
//		element.isSeletctedFllowMouse = GUILayout.Toggle(element.isSeletctedFllowMouse,EditorStringConfig.getString(10032));
//
//		if(element.isSeletctedFllowMouse) element.isAtMap = true;

        //自动吸附到地图
        if (element.isAtMap)
        {
            element.AdsorptionToMap();
        }
        else
        {
            /*种植*/
            if (GUILayout.Button(EditorStringConfig.getString(10034), GUILayout.Width(100), GUILayout.Height(20)))
            {
                element.CorrectionPostion();
            }
        }

        /*克隆*/
        if (GUILayout.Button(EditorStringConfig.getString(10035), GUILayout.Width(100), GUILayout.Height(20)))
        {
            Object     prefab      = EditorUtility.GetPrefabParent(Selection.activeObject);
            GameObject cloneSource = Selection.activeObject as GameObject;
            GameObject cloneObject = null;
            if (prefab)
            {
                Vector3 oldpos = element.gameObject.transform.position;
                cloneObject = SceneEditorTools.CreatePlant(prefab, new Vector3(oldpos.x + 3f + element.transform.localScale.x, oldpos.y, oldpos.z), element.transform.localScale, element.settingData.Type, element.isAtMap, element.transform.rotation.eulerAngles);
            }
            //克隆代码
            element.CloneScript(cloneSource, cloneObject);
        }

        /*销毁*/
        if (GUILayout.Button(EditorStringConfig.getString(10033), GUILayout.Width(100), GUILayout.Height(20)))
        {
            element.isDeleteGameObject = true;
        }
        //GUILayout.BeginHorizontal();
        element.isSetTransform = GUILayout.Toggle(element.isSetTransform, "Transform(World)", EditorStyles.foldout);
        //GUILayout.EndHorizontal();
        Rect lastRect = GUILayoutUtility.GetLastRect();

        if (element.isSetTransform)
        {
            ++EditorGUI.indentLevel;
            GUILayout.BeginHorizontal();
            if (GUI.Button(new Rect(16, lastRect.yMax, 20, 18), "P"))
            {
                element.transform.position = Vector3.zero;
            }
            element.transform.position = EditorGUI.Vector3Field(new Rect(20, lastRect.yMax + 2, 150, 20), "", element.transform.position);
            GUILayout.EndHorizontal();

            lastRect.yMax += 20f;
            GUILayout.BeginHorizontal();
            if (GUI.Button(new Rect(16, lastRect.yMax, 20, 18), "R"))
            {
                element.transform.rotation = Quaternion.Euler(Vector3.zero);
            }
            element.transform.rotation = Quaternion.Euler(EditorGUI.Vector3Field(new Rect(20, lastRect.yMax + 2, 150, 20), "", element.transform.rotation.eulerAngles));
            GUILayout.EndHorizontal();

            lastRect.yMax += 20f;
            GUILayout.BeginHorizontal();
            if (GUI.Button(new Rect(16, lastRect.yMax, 20, 18), "S"))
            {
                element.transform.localScale = Vector3.one;
            }
            element.transform.localScale = EditorGUI.Vector3Field(new Rect(20, lastRect.yMax + 2, 150, 20), "", element.transform.localScale);
            GUILayout.EndHorizontal();

            --EditorGUI.indentLevel;
        }
        GUILayout.EndArea();

        Handles.EndGUI();
    }
Ejemplo n.º 11
0
    static void OnSceneDraw(SceneView sceneView)
    {
        if (Event.current.isKey)
        {
            if (Event.current.type == EventType.KeyDown)
            {
                if (Event.current.keyCode == KeyCode.A)
                {
                    SceneEditorSettings.isOpenFllowMouse = !SceneEditorSettings.isOpenFllowMouse;
                }
            }
        }
        if (Event.current.isMouse)
        {
            if (Event.current.type == EventType.MouseDown)
            {
                /*拖拽鼠标具备选中功能*/
                if (Tools.current == Tool.View)
                {
                    Vector3 mousePosition = Event.current.mousePosition;
                    float   height        = SceneView.currentDrawingSceneView.position.height;
                    mousePosition.y = height - mousePosition.y - 15f;
                    Ray        ray = sceneView.camera.ScreenPointToRay(mousePosition);
                    RaycastHit hit;
                    Physics.Raycast(ray, out hit);
                    if (hit.transform != null && hit.transform.name != "Grid")
                    {
                        GameObject OldSelection = Selection.activeObject as GameObject;
                        if (OldSelection != hit.transform.gameObject)
                        {
                            UISceneElementBase _old = null;
                            if (OldSelection != null)
                            {
                                _old = OldSelection.GetComponent <UISceneElementBase>();
                            }
                            if (_old != null)
                            {
                                _old.OnLostFocus();
                            }
                            UISceneElementBase _new = hit.transform.gameObject.GetComponent <UISceneElementBase>();
                            if (_new != null)
                            {
                                _new.OnFocus();
                            }
                            Selection.activeObject = hit.transform.gameObject;
                        }
                    }
                }
            }
        }

        //开始绘制GUI
        Handles.BeginGUI();

        GUILayout.BeginArea(new Rect(0, sceneView.position.height - 70, 200, 200));
        string currMapName = "";

        if (SceneEditorSettings.currMap != null)
        {
            currMapName = SceneEditorSettings.currMap.name;
        }

        /*正在编辑*/
        GUILayout.Label(EditorStringConfig.getString(10030) + ": " + currMapName);

        #region  标跟随
        /*是否打开了鼠标跟随功能*/
        bool isOpenFllowMouseOld = SceneEditorSettings.isOpenFllowMouse;
        SceneEditorSettings.isOpenFllowMouse = GUILayout.Toggle(SceneEditorSettings.isOpenFllowMouse, EditorStringConfig.getString(10032) + "(" + EditorStringConfig.getString(10045) + ":A)");
        /*从拖拽状态切出*/
        if (isOpenFllowMouseOld != SceneEditorSettings.isOpenFllowMouse && isOpenFllowMouseOld)
        {
            Tools.current = Tool.Move;
        }
        /*强制鼠标拖拽*/
        if (SceneEditorSettings.isOpenFllowMouse)
        {
            Tools.current = Tool.View;
        }
        #endregion

        if (SceneEditorSettings.currMap != null)
        {
            UISceneMap map = SceneEditorSettings.currMap.GetComponent <UISceneMap>();
            if (map != null)
            {
                if (map.EditorCamera != null)
                {
                    //bool isOldOpen = isOpenSceneCamera;
                    /*打开场景摄像机*/
                    isOpenSceneCamera        = GUILayout.Toggle(isOpenSceneCamera, EditorStringConfig.getString(10029));
                    map.EditorCamera.enabled = isOpenSceneCamera;
                    //map.EditorCamera.hideFlags = HideFlags.NotEditable;
                    if (map.EditorCamera.isOrthoGraphic)
                    {
                        map.EditorCamera.isOrthoGraphic = false;
                    }
                    map.EditorCamera.transform.rotation = sceneView.camera.transform.rotation;
                    map.EditorCamera.transform.position = sceneView.camera.transform.position;
                }
            }
        }


        GUILayout.EndArea();
        Handles.EndGUI();
    }
Ejemplo n.º 12
0
    void OnGUI()
    {
//		NewDrawTest();
//		return;
        SetFontStyle(Color.gray, 18, FontStyle.Italic, EditorStyles.label);
        GUILayout.BeginHorizontal();

        /*版本:1.0.1*/
        GUILayout.Label(EditorStringConfig.getString(10000), style);

        GUILayout.EndHorizontal();
        DrawLine();
        GUILayout.Space(15);


        GUILayout.BeginHorizontal();
        SetFontStyle(Color.gray, 15, FontStyle.Italic);
        /*正在编辑地图:*/
        GUILayout.Label(EditorStringConfig.getString(10001), style);
        SceneEditorSettings.currMap = EditorGUILayout.ObjectField(SceneEditorSettings.currMap, typeof(GameObject), true) as GameObject;
        /*刷新数据*/
        if (GUILayout.Button(EditorStringConfig.getString(10002, 10003), GUILayout.Width(60), GUILayout.Height(16)))
        {
            RefreshAllData();
        }
        GUILayout.EndHorizontal();

        GameObject currMap   = SceneEditorSettings.currMap;
        bool       isHaveMap = currMap == null;

        if (isHaveMap)
        {
            /*未检测到场景,你可以\n1.创建一个新场景. \n2.导入一个已经保存的场景配置表.\n3.从Hierarchy视图中拖入一个已有的场景*/
            EditorGUILayout.HelpBox(EditorStringConfig.getString(10021), MessageType.Error);
            ShowMapMenu();
        }
        else
        {
            GUILayout.Space(10);
            GUILayout.BeginHorizontal();
            /*销毁地图*/
            if (GUILayout.Button(EditorStringConfig.getString(10022), GUILayout.Width(150), GUILayout.Height(40)))
            {
                /*"友情提示","你确定要销毁地图","确定","取消"*/
                bool result = EditorUtility.DisplayDialog(EditorStringConfig.getString(10023), EditorStringConfig.getString(10024) + currMap.name, EditorStringConfig.getString(10025), EditorStringConfig.getString(10026));
                if (result)
                {
                    GameObject currMapObj = GameObject.Find(currMap.name);
                    DestroyImmediate(currMapObj);
                    currMapId = 0;
                    SceneEditorSettings.currMap = null;
                }
            }

            /*载入配置表*/
            if (GUILayout.Button(EditorStringConfig.getString(10016), GUILayout.Width(150), GUILayout.Height(40)))
            {
                /*"友情提示","是否先保存当前场景?","确定","取消"*/
                bool result = EditorUtility.DisplayDialog(EditorStringConfig.getString(10023), EditorStringConfig.getString(10027), EditorStringConfig.getString(10025), EditorStringConfig.getString(10026));
                if (result)
                {
                    SceneEditorTools.AutoGenerateSettingFile();
                }
                else
                {
                    GameObject currMapObj = GameObject.Find(currMap.name);
                    DestroyImmediate(currMapObj);
                    SceneEditorSettings.currMap = null;
                }
                SceneEditorTools.AutoImportSettingFile();
            }
            GUILayout.EndHorizontal();

            //如果当前创建了地图
            if (currMap != null)
            {
                GUILayout.Space(10);

                DrawLine();

                SetFontStyle(Color.gray, 12, FontStyle.Italic, EditorStyles.foldout);
                /*地图编辑*/
                SceneEditorSettings.isEditorMapGrid = EditorGUILayout.Foldout(SceneEditorSettings.isEditorMapGrid, EditorStringConfig.getString(10004), style);
                if (SceneEditorSettings.isEditorMapGrid)
                {
                    ++EditorGUI.indentLevel;
                    GameObject map   = SceneEditorSettings.currMap;
                    UISceneMap uimap = map.GetComponent <UISceneMap>();
                    if (uimap != null)
                    {
                        bool oldShowMap = uimap.isShowMap;
                        /*显示网格*/
                        uimap.isShowMap = EditorGUILayout.Toggle(EditorStringConfig.getString(10005), uimap.isShowMap);
                        if (oldShowMap != uimap.isShowMap)
                        {
                            SceneView.RepaintAll();
                        }

                        float   gridwidth   = uimap.renderTo.x - uimap.renderFrom.x;
                        float   gridheight  = uimap.renderTo.y - uimap.renderFrom.y;
                        Vector2 gridSize    = new Vector3(gridwidth, gridheight);
                        Vector2 oldgridSize = gridSize;
                        /*网格大小*/
                        gridSize         = EditorGUILayout.Vector2Field(EditorStringConfig.getString(10006), gridSize);
                        uimap.renderFrom = new Vector3(-gridSize.x / 2f, -gridSize.y / 2f, 0);
                        uimap.renderTo   = new Vector3(gridSize.x / 2f, gridSize.y / 2f, 0);
                        if (oldgridSize != gridSize)
                        {
                            SceneView.RepaintAll();
                        }

                        Color oldaxisColors = uimap.axisColors;
                        /*网络颜色*/
                        uimap.axisColors = EditorGUILayout.ColorField(EditorStringConfig.getString(10007), uimap.axisColors);
                        if (oldaxisColors != uimap.axisColors)
                        {
                            SceneView.RepaintAll();
                        }
                    }

                    --EditorGUI.indentLevel;
                }



                //显示网络编辑模块
                GUILayout.Space(10);
                DrawLine();

                string[] FarmingType = System.Enum.GetNames(typeof(SceneElementType));
                /*请选择*/
                FarmingType[0] = EditorStringConfig.getString(10008);

                SetFontStyle(Color.gray, 12, FontStyle.Italic, EditorStyles.foldout);
                /*地图种怪编辑*/
                SceneEditorSettings.isOpenFarming = EditorGUILayout.Foldout(SceneEditorSettings.isOpenFarming, EditorStringConfig.getString(10009), style);


                if (SceneEditorSettings.isOpenFarming)
                {
                    ++EditorGUI.indentLevel;
                    EditorGUILayout.BeginHorizontal();
                    /*种植类型*/
                    SceneEditorSettings.farmingTypeIndex = EditorGUILayout.Popup(EditorStringConfig.getString(10010), SceneEditorSettings.farmingTypeIndex, FarmingType);
                    /*编辑*/
                    if (GUILayout.Button(EditorStringConfig.getString(10011), GUILayout.Width(50), GUILayout.Height(16)))
                    {
                        SceneEditorGridWindow window = (SceneEditorGridWindow)EditorWindow.GetWindow(typeof(SceneEditorGridWindow));
                        window.Init();
                    }
                    EditorGUILayout.EndHorizontal();

                    GUILayout.Space(5);
                    //如果用户选择了一种类型
                    if (SceneEditorSettings.farmingTypeIndex > 0)
                    {
                        Object PlantSource = SceneEditorSettings.GetPlantFileObject((SceneElementType)SceneEditorSettings.farmingTypeIndex);
                        EditorGUILayout.BeginHorizontal();
                        /*资源来源*/
                        Object currPlantSource = EditorGUILayout.ObjectField(EditorStringConfig.getString(10012), PlantSource, typeof(Object));
                        //资源文件夹是否发生了改变
                        bool isChanged = PlantSource != currPlantSource;

                        SceneEditorSettings.SetPlantFileObject((SceneElementType)SceneEditorSettings.farmingTypeIndex, currPlantSource);

                        /*刷新*/
                        if (GUILayout.Button(EditorStringConfig.getString(10002), GUILayout.Width(50), GUILayout.Height(16)))
                        {
                            if (currPlantSource != null)
                            {
                                GetGameObjectsNameInFolder(currPlantSource);
                            }
                        }
                        EditorGUILayout.EndHorizontal();

                        if (PlantSource != null)
                        {
                            if (isChanged)
                            {
                                GetGameObjectsNameInFolder(currPlantSource);
                            }

                            GUILayout.Space(5);
                            PlantSourceIndex = EditorGUILayout.Popup(FarmingType[SceneEditorSettings.farmingTypeIndex] + "名称:", PlantSourceIndex, PlantSourceName.ToArray());
                        }
                        GUILayout.Space(5);

                        GUILayout.BeginHorizontal();
                        GUILayout.Space(this.position.width - 100);

                        /*更新地图分类*/
                        if (GUILayout.Button(EditorStringConfig.getString(10013), GUILayout.Width(100), GUILayout.Height(40)))
                        {
                            SceneEditorSettings.currMap.GetComponent <UISceneMap>().RefreshClassification();
                        }
                        GUILayout.EndHorizontal();

                        GUILayout.Space(5);
                        ShowZhongGuai(FarmingType);
                    }

                    --EditorGUI.indentLevel;
                }
            }
        }

        GUILayout.Space(5);
        DrawLine();
    }