void OnGUI()
    {
        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Excel路径 : ", GUILayout.Width(80));
        _excelPath = EditorGUILayout.TextField(_excelPath, GUILayout.Width(400));
        bool selectPath = GUILayout.Button("选择");

        if (selectPath)
        {
            _excelPath = EditorWindowUtil.SelectFileWithFilters("选择Excel路径", _excelPath, new string[] { "xls,xlsx", "xls,xlsx" });
        }
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();
        bool load = GUILayout.Button("Load");
        bool save = GUILayout.Button("Save");

        EditorGUILayout.EndHorizontal();

        if (load)
        {
            LoadFile();
        }
        if (save)
        {
            SaveFile();
        }

        if (_excel == null || _excel.excelData == null)
        {
            return;
        }

        _position = EditorGUILayout.BeginScrollView(_position);
        for (int i = 0; i < _excel.excelData.count; i++)
        {
            EditorGUILayout.BeginHorizontal();
            _tmpRow = _excel.excelData.GetRow(i);
            if (_tmpRow.rowType == ExcelRowType.Content || _tmpRow.rowType == ExcelRowType.Comment)
            {
                DrawRow(_tmpRow, DrawCell);
            }
            else if (_tmpRow.rowType == ExcelRowType.Type)
            {
                DrawRow(_tmpRow, DrawTypeCell);
            }
            else if (_tmpRow.rowType == ExcelRowType.Name)
            {
                DrawRow(_tmpRow, DrawNameCell);
            }
            EditorGUILayout.EndHorizontal();
        }

        EditorGUILayout.EndScrollView();
    }
 void LoadFile()
 {
     if (string.IsNullOrEmpty(_excelPath))
     {
         _excelPath = EditorWindowUtil.SelectFileWithFilters("选择Excel路径", _excelPath, new string[] { "xls,xlsx", "xls,xlsx" });
     }
     if (string.IsNullOrEmpty(_excelPath) || (!_excelPath.EndsWith(".xls") && !_excelPath.EndsWith(".xlsx")))
     {
         Debug.LogError("请选择正确的excel文件");
         return;
     }
     _excel = new Excel(_excelPath);
     _excel.Load();
 }
        public override void OnInspectorGUI()
        {
            scrollViewHeight = EditorGUILayout.FloatField("ScrollViewHeight", scrollViewHeight);
            textAsset        = (TextAsset)EditorGUILayout.ObjectField("Text Asset", textAsset, typeof(TextAsset), false);
            if (string.IsNullOrEmpty(assetPath) || !assetPath.EndsWith(".xml"))
            {
                textAsset = null;
            }
            using (new EditorGUI.DisabledScope(textAsset == null))
            {
                using (new GUILayout.HorizontalScope())
                {
                    if (GUILayout.Button(EditorGUIUtility.IconContent("d_TreeEditor.Refresh"), GUILayout.Width(25)))
                    {
                        HierarchyView.canvas = canvas;
                    }
                    if (GUILayout.Button("Load"))
                    {
                        componet.LoadCanvas((target as GUICanvasComponet).textAsset);
                        HierarchyView.canvas = canvas;
                        if (SceneView.lastActiveSceneView != null)
                        {
                            SceneView.lastActiveSceneView.Repaint();
                        }
                    }
                    if (GUILayout.Button("Save"))
                    {
                        XmlDocument doc = new XmlDocument();
                        doc.AppendChild(canvas.Serialize(doc));
                        doc.Save(assetPath);
                        AssetDatabase.Refresh();
                    }
                }
            }

            index = GUILayout.Toolbar(index, new string[] { "Tree", "Design" });
            Rect rect = EditorGUILayout.GetControlRect(GUILayout.Height(scrollViewHeight));

            GUI.Box(rect, "");

            if (canvas == null)
            {
                return;
            }
            if (HierarchyView.canvas == null)
            {
                HierarchyView.canvas = canvas;
            }
            if (index == 0)
            {
                HierarchyView.OnCanvasTreeGUI(rect);
            }
            else
            {
                Rect rect2 = rect;
                rect2.width  = EditorWindowUtil.Find("InspectorWindow").position.width - 20;
                rect2.height = scrollViewHeight;
                GUI.BeginGroup(rect2);
                InspectorView.OnGUI(rect2);
                GUI.EndGroup();
                Repaint();
            }
        }
Exemplo n.º 4
0
    private void OnGUI()
    {
        CheckPaths();

        #region GUI
        bool selectExcelPath        = EditorWindowUtil.DrawSelectPathView("excel路径:", _excelPath);
        bool selectAssetPath        = EditorWindowUtil.DrawSelectPathView("Asset路径:", _assetPath);
        bool selectClientScriptPath = EditorWindowUtil.DrawSelectPathView("客户端类输出路径:", _clientScriptOutputPath);
        bool selectClientDataPath   = EditorWindowUtil.DrawSelectPathView("客户端数据输出路径:", _clientDataOutputPath);

        var type = (ExcelDataExportType)EditorGUILayout.EnumPopup("文件导出类型", _exportType);
        if (type != ExcelExporterUtil.exportType)
        {
            _exportType = type;
            ExcelExporterUtil.exportType = type;
            PlayerPrefs.SetInt("_exportType", (int)_exportType);
        }


        Rect rect = EditorGUILayout.GetControlRect(true, GUILayout.Height(100));
        GUI.Box(rect, "选择Excel文件");

        bool genData     = GUILayout.Button("生成配置配置文件");
        bool genClass    = GUILayout.Button("生成客户端类文件");
        bool cleanClient = GUILayout.Button("清理客户端类和数据");

        if (_selectFiles.Count > 0)
        {
            EditorGUILayout.LabelField("选中文件:");
            EditorGUILayout.TextArea(_selectFilesText);
        }
        #endregion

        DealDrag(rect);

        if (genClass)
        {
            GenerateSelectedScript();
        }
        if (genData)
        {
            if (EditorApplication.isCompiling)
            {
                ShowNotification(new GUIContent("正在编译,请等待编译完成"));
                return;
            }
            GenerateSelectedData();
        }

        if (cleanClient)
        {
            CleanClient();
        }

        #region RefreshPaths
        if (selectExcelPath)
        {
            _excelPath = EditorWindowUtil.SelectFolder(_excelPath, "选择excel路径", "");
            ExcelExporterUtil.ExcelPath = _excelPath;
            WriteStringField("_excelPath");
        }

        if (selectAssetPath)
        {
            _assetPath = EditorWindowUtil.SelectFolder(_assetPath, "选择工程Assets路径", "");
            ExcelExporterUtil.AssetPath = _assetPath;
            WriteStringField("_assetPath");
        }

        if (selectClientDataPath)
        {
            _clientDataOutputPath = EditorWindowUtil.SelectFolder(_clientDataOutputPath, "选择客户端数据输出路径", "");
            ExcelExporterUtil.ClientDataOutputPath = _clientDataOutputPath;
            WriteStringField("_clientDataOutputPath");
        }

        if (selectClientScriptPath)
        {
            _clientScriptOutputPath = EditorWindowUtil.SelectFolder(_clientScriptOutputPath, "选择客户端类输出路径", "");
            ExcelExporterUtil.ClientScriptOutputPath = _clientScriptOutputPath;
            WriteStringField("_clientScriptOutputPath");
        }
        #endregion
    }