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(); } }
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 }