新闻详情

新闻详情

首页 / 资讯中心 / 详情

【Unity UI 进阶】仿 Element UI 打造企业级 Unity UI 组件库(10)

发布时间:2026/9/27 23:32:57来源:尧图网络
【Unity UI 进阶】仿 Element UI 打造企业级 Unity UI 组件库(10)
【Unity UI 进阶】仿 Element UI 打造企业级 Unity UI 组件库10环境与工具说明项说明代码生成本系列组件库代码由CursorAI 编程助手辅助生成与迭代再结合工程内联调、重构落地Unity 版本2022.3.50f1c1Unity 2022.3 LTSUI 框架UGUIUnityEngine.UI TextMeshPro示例工程EleUnityUI仿 Element UI 企业级组件库建议使用Unity 2022.3 LTS同系列版本打开工程。上篇09讲完EleAccordion本篇是EleDialog对话框模态遮罩、表单字段、确认/取消以及和Table 行编辑弹窗的复用关系。Dialog 对话框模态 / 非模态、标题拖拽、右下角缩放、边缘收起后台里删一行、改一行、批量改字段几乎都绕不开「弹窗」。Element 的 Dialog 心智是遮罩可选Modal 挡住底层Modeless 可继续点表格确认 / 取消危险操作要二次确认表单窗按字段配置生成 Input / Select / Number…可拖可缩标题栏移动、右下角改尺寸需要时可收到边缘EleDialog按同一模型实现Alert / Confirm / Form 共用一副壳Table 行编辑不另写弹窗只调ShowForm。本篇覆盖模态遮罩EleDialogMode.Modal/Modeless表单字段与校验确认 / 取消回调标题拖拽 / 右下角缩放 / 边缘收起还原与 Table 行编辑的复用关系Prefab Generate 约定涉及文件能力主要文件运行时壳与交互Runtime/Dialog/EleDialog.cs标题拖 / 缩放把手EleDialogTitleDrag.cs/EleDialogResizeHandle.cs示例配置Runtime/Dialog/EleDialogModels.cs、EleDialogConfigAsset.cs示例宿主Runtime/Dialog/EleDialogSampleDemoHost.cs示例生成Editor/Dialog/EleDialogSampleGenerator.cs表单配置类型Runtime/Tables/EleTableModels.csEleDialogConfig/EleFormFieldConfigTable 打开弹窗Runtime/Tables/EleTable.Dialogs.cs颜色走设计变量遮罩半透明黑、面板PanelBg、标题栏HeaderBg、主按钮 Primary。工程约定不改第三方插件新增 C# 写中文注释Generate 烘焙EleDialogHost壳Overlay Panel ResizeHandle运行时缺引用打日志不在 Demo 路径「缺啥建啥」。一、整体结构1. Prefab 层级示例EleDialogSample ├── DemoPanel ← 左侧演示按钮 日志 │ ├── BtnAlert / BtnConfirm │ ├── BtnFormModal / BtnFormModeless │ └── Log └── EleDialogHost ← EleDialog铺满sortingOrder 置顶 ├── Overlay ← 模态遮罩非模态时隐藏 └── Panel ├── TitleBar ← Title Collapse(—/□) Close(×) ├── Body │ ├── Message ← Alert/Confirm 文案表单校验提示 │ └── Form ← 动态字段行 ├── Footer ← Cancel / Ok └── ResizeHandle ← 右下角缩放ignoreLayout2. 数据流ShowAlert / ShowConfirm / ShowForm → EnsureShell重绑已烘焙壳 → ApplyChrome标题、按钮、模态、尺寸、可拖/缩/收 → 用户交互 → 拖 TitleBar → anchoredPosition → 拖 ResizeHandle → sizeDelta夹最小尺寸 → 点 — → 藏 Body/Footer贴最近边缘成条点 □ 还原 → Ok → CollectForm 校验 → onSubmit / onOk → Cancel / × → onCancel → Close业务最小接入独立使用vardlgEleDialog.Ensure(parent);dlg.ApplyChromeOptions(draggable:true,resizable:true,collapsible:true);dlg.ShowConfirm(确认,确定删除,onOk:()Delete(),onCancel:null);Table 侧更常见table.OpenConfiguredDialog(editRow,newListEleTableRowData{row.Data});// 或行操作 actionKindEdit → 默认 key openDialogKey ?? editRow二、配置模型1.EleDialogConfig与 Table 共用字段含义key工具栏 / 行操作openDialogKey引用title标题栏文案modeModal/Modelesswidth/minHeight初始尺寸confirmText/cancelText/showCancel底栏按钮bindSelectedRow打开时用选中行第一条填字段draggable/resizable/collapsible拖、缩、收起fieldsEleFormFieldConfig列表2. 字段类型EleFormFieldType类型UIInput单行 TMP_InputFieldNumber数字内容类型TextArea多行Select按钮轮换选项值存隐藏 InputCheckboxToggle提交1/0必填失败时在Message区用危险色提示不关窗。3. 示例EleDialogSampleConfig独立 Demo 用默认 chrome 开关 demoForm结构与 TableeditRow对齐便于对照博文 04。三、模态与非模态模式Overlay底层可否操作Modal半透明黑、raycastTargettrue否先关窗Modeless隐藏 / 透明、不挡射线是可继续点表格或 Demo 按钮ShowAlert/ShowConfirm用bool modal参数ShowForm读config.mode。示例按钮表单模态→EleDialogMode.Modal表单非模态→EleDialogMode.Modeless四、拖拽、缩放、边缘收起1. 拖标题EleDialogTitleDrag挂在TitleBar左键拖动把eventData.delta换算成 Canvas 本地增量写入_panel.anchoredPosition并夹在 Host 矩形内。收起成条后仍可拖松手按最近边再贴齐。2. 右下角缩放EleDialogResizeHandle锚在 Panel 右下LayoutElement.ignoreLayouttrue避免被竖排布局挤走。拖动时增大sizeDelta并按中心枢轴补偿anchoredPosition夹minWidth/minHeight。3. 边缘收起操作行为点标题栏—记住位置与尺寸隐藏 Body / Footer / ResizeHandle缩成条贴最近边点□还原尺寸与位置重新显示内容区贴边枚举EleDialogDockEdge Left / Right / Top / Bottom。五、与 Table 行编辑的复用关系这是本篇重点不要为表格再写一套弹窗。行操作 Edit / 工具栏 openDialogKey → EleTable.OpenConfiguredDialog(key, contextRows) → config.FindDialog(key) → EleDialogConfig → EleDialog.Ensure(table.transform) // Host 名 EleDialogHost → ShowForm(cfg, seedRow, onSubmit, onCancel) → OnDialogSubmitted(EleDialogSubmitRequest)能力Dialog 独立示例Table 行编辑壳 UIGenerate 烘焙EleDialogHostEnsure复用同组件配置EleDialogSampleConfig.demoFormEleTableConfig.dialogs种子数据Demo 构造EleTableRowDatabindSelectedRow→ 选中行提交Demo 打日志OnDialogSubmitted→ 业务改行 / 调接口确认框ShowConfirm行删除confirmBeforeExecute等同壳因此改遮罩、拖拽、缩放、收起表格编辑窗一并受益。字段模型仍放在EleTableModels历史原因运行时组件在Runtime/Dialog/。六、Prefab 生成与菜单1. 菜单EleUnityUI → Samples → Dialog → Generate EleDialog Sample EleUnityUI → Samples → Dialog → Spawn EleDialog Preview In Scene EleUnityUI → Samples → Dialog → Reset EleDialog Config To Preset GameObject → EleUnityUI → Dialog → SampleSpawn不会在缺 Prefab 时自动 Generate。2. Generate 烘焙什么左侧DemoPanel与四个入口按钮EleDialogHostOverlay、Panel、TitleBar含 Collapse/Close、Body、Form、Footer、ResizeHandleEleDialogSampleDemoHost序列化引用3. 运行时约定// ✅ 壳已烘焙EnsureShell 只 Rebinddialog.EnsureShell();dialog.ShowForm(cfg,seed,onSubmit,onCancel);// ❌ Demo 里发现没有 Panel 就临时拼一棵树缺dialog引用Debug.LogError([EleDialog] 缺少 dialog 引用请重新 Generate Prefab)。七、API 一览API / 事件说明Ensure(parent)获取/创建EleDialogHostApplyChromeOptions(...)拖 / 缩 / 收起与最小尺寸ShowAlert/ShowConfirm警告 / 确认ShowForm(config, seed, onSubmit, onCancel)表单窗Close(invokeCancel)关闭ToggleCollapse收起 ↔ 还原CollectForm收集字段值IsOpen/IsCollapsed/IsModal状态TableOpenConfiguredDialog/OnDialogSubmitted行编辑入口八、落地检查清单Generate 后有EleDialogSample.prefab含EleDialogHost/Panel/ResizeHandleSpawn 后点 Alert / Confirm / 两种表单均能打开模态时遮罩挡住 Demo非模态时可再点其它按钮拖标题可移动拖右下角可改大小不低于最小尺寸点 — 收到边缘成条点 □ 还原表单必填为空时提示且不关闭提交后日志有字段值Table 行「编辑」仍打开同一套EleDialog见博文 04九、小结EleDialog 一副壳覆盖 Alert / Confirm / FormModal / Modeless只切换 Overlay不换组件拖标题、右下角缩放、边缘收起是窗体 chrome与表单字段正交Table 行编辑openDialogKey→ 同一ShowForm业务听OnDialogSubmitted系列回顾与下篇篇内容04Table 下工具栏、弹窗入口、OnDialogSubmitted05TabsPanel_{tabCode}09Accordion手风琴与 Tabs 边界10Dialog模态、表单、拖缩收起、与 Table 复用本文11反馈类补齐EleMessage 页面提示 Tooltip 用法UGUI 无 Message/Alert/Tooltip —— 新建轻量EleMessageTooltip 基于已有EleUiTooltip写清配置与用法不另造一层壳。若你也在纠结「表格编辑要不要单独做 Page」字段少、要挡操作 →Modal Dialog要对照表格边改边看 →Modeless整页复杂向导 → 另开路由/面板别硬塞 Dialog。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

如何建设自己网站?避开这3个致命漏洞,建站报价省一半 2026/9/28 0:25:52

如何建设自己网站?避开这3个致命漏洞,建站报价省一半

如何建设自己网站?避开这3个致命漏洞,建站报价省一半 网站做好了没人访问,往往不是内容不够好,而是后台被黑了,或者加载慢到用户直接关页面。很多新手在咨询 建站报价…

阅读更多 →
南宁网站建设公司利润真相:新手怎么选避坑指南 2026/9/28 0:25:20

南宁网站建设公司利润真相:新手怎么选避坑指南

南宁网站建设公司利润真相:新手怎么选避坑指南 网站上线三个月,后台日志显示每天只有寥寥几个IP访问,全是蜘蛛或者自己点的。这种“网站做好了没人访问”的绝望感,是无数南宁老板和初创企业最真实的痛点。你花了几万甚至十几万做的站,成了公司官网里的…

阅读更多 →
新手入门外贸网站服务器推荐:3个坑避开,省钱又稳定 2026/9/28 0:25:14

新手入门外贸网站服务器推荐:3个坑避开,省钱又稳定

新手入门外贸网站服务器推荐:3个坑避开,省钱又稳定 域名解析报错?服务器连不上?对于刚接触外贸建站的新手来说,“域名服务器搞不懂”是比代码还劝退的第一道坎。很多人以为买个好域名就行,结果部署时才发现,选错服务器比选错颜色更致命。…

阅读更多 →
WordPress页面模板目录文件下载:5大注意事项避坑指南 2026/9/28 0:25:13

WordPress页面模板目录文件下载:5大注意事项避坑指南

WordPress页面模板目录文件下载:5大注意事项避坑指南 域名解析报错?服务器连不上?别慌,这往往是新手搞混了本地环境与线上部署的边界。很多做网站的朋友,一上来就对着浏览器地址栏发呆,觉得“我明明下载了文件,为什么打不开?”其实,…

阅读更多 →
选对早教网站源码才不挂马,这套最佳实践救过我 2026/9/28 0:24:29

选对早教网站源码才不挂马,这套最佳实践救过我

选对早教网站源码才不挂马,这套最佳实践救过我 网站被黑挂马,后台乱发博彩广告,客户投诉电话打爆?别急着删库重装,那是治标不治本。很多老板觉得只要源码是“免费”的或者“破解”的就能省钱,结果因为代码里藏着后门,服务器成了肉鸡,域名直接进黑名单…

阅读更多 →
知识产权网站开发避坑指南:性能优化决定咨询转化 2026/9/28 0:24:22

知识产权网站开发避坑指南:性能优化决定咨询转化

知识产权网站开发避坑指南:性能优化决定咨询转化 改个需求建站公司拖一周,这种经历是不是让你火大?很多中小企业老板在搞 知识产权网站开发…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉