面向 TapTap Maker(UrhoX:Yoga + NanoVG) 的可视化 UI 编辑器。
技术栈:bun + TypeScript + React 19 + Electron + electron-vite。
UIEditorForTapMaker/
├── build/ # 打包静态资源(icon)
├── resources/ # 运行时资源(打进包 extraResources)
├── src/
│ ├── main/ # 主进程
│ │ ├── index.ts # app 生命周期
│ │ ├── window.ts # BrowserWindow
│ │ ├── menu.ts # 应用菜单
│ │ └── ipc/ # IPC handlers
│ │ ├── index.ts
│ │ └── file.ts # 对话框 / 文件读写
│ ├── preload/
│ │ ├── index.ts # contextBridge
│ │ └── index.d.ts
│ ├── renderer/
│ │ ├── index.html
│ │ └── src/ # React 渲染层
│ │ ├── panels/
│ │ ├── layout/
│ │ ├── store/
│ │ ├── utils/
│ │ ├── widgets.ts
│ │ ├── App.tsx
│ │ └── main.tsx
│ └── shared/ # 主/预加载/渲染共享
│ ├── types.ts
│ └── ipc-channels.ts
├── tests/
├── examples/
├── electron.vite.config.ts
├── electron-builder.yml
├── tsconfig.json # project references
├── tsconfig.node.json # main + preload + shared
└── tsconfig.web.json # renderer + shared
旧版 VisualUIEditor 快照在仓库外:../legacy-VisualUIEditor/。
| 命令 | 说明 |
|---|---|
bun install |
安装依赖 |
bun run dev |
开发模式 |
bun run build |
构建到 out/ |
bun run package |
打包到 release/ |
bun run typecheck |
检查 node + web 两套 tsconfig |
bun test |
单元测试 |
导出 .ui.json,用 UILoader.LoadFromFile 加载:
local UI = require("urhox-libs/UI")
local instance = UI.UILoader.LoadFromFile("ui/lobby.ui.json")
UI.SetRoot(instance:GetRoot())示例:examples/maker-ui/lobby.ui.json。
MIT