YHH
|
ed8f6e283b
|
feat: 纹理路径稳定 ID 与架构改进 (#305)
* feat(asset-system): 实现路径稳定 ID 生成器
使用 FNV-1a hash 算法为纹理生成稳定的运行时 ID:
- 新增 _pathIdCache 静态缓存,跨 Play/Stop 循环保持稳定
- 新增 getStableIdForPath() 方法,相同路径永远返回相同 ID
- 修改 loadTextureForComponent/loadTextureByGuid 使用稳定 ID
- clearTextureMappings() 不再清除 _pathIdCache
这解决了 Play/Stop 后纹理 ID 失效的根本问题。
* fix(runtime-core): 移除 Play/Stop 循环中的 clearTextureMappings 调用
使用路径稳定 ID 后,不再需要在快照保存/恢复时清除纹理缓存:
- saveSceneSnapshot() 移除 clearTextureMappings() 调用
- restoreSceneSnapshot() 移除 clearTextureMappings() 调用
- 组件保存的 textureId 在 Play/Stop 后仍然有效
* fix(editor-core): 修复场景切换时的资源泄漏
在 openScene() 加载新场景前先卸载旧场景资源:
- 调用 sceneResourceManager.unloadSceneResources() 释放旧资源
- 使用引用计数机制,仅卸载不再被引用的资源
- 路径稳定 ID 缓存不受影响,保持 ID 稳定性
* fix(runtime-core): 修复 PluginManager 组件注册类型错误
将 ComponentRegistry 类改为 GlobalComponentRegistry 实例:
- registerComponents() 期望 IComponentRegistry 接口实例
- GlobalComponentRegistry 是 ComponentRegistry 的全局实例
* refactor(core): 提取 IComponentRegistry 接口
将组件注册表抽象为接口,支持场景级组件注册:
- 新增 IComponentRegistry 接口定义
- Scene 持有独立的 componentRegistry 实例
- 支持从 GlobalComponentRegistry 克隆
- 各系统支持传入自定义注册表
* refactor(engine-core): 改进插件服务注册机制
- 更新 IComponentRegistry 类型引用
- 优化 PluginServiceRegistry 服务管理
* refactor(modules): 适配新的组件注册接口
更新各模块 RuntimeModule 使用 IComponentRegistry 接口:
- audio, behavior-tree, camera
- sprite, tilemap, world-streaming
* fix(physics-rapier2d): 修复物理插件组件注册
- PhysicsEditorPlugin 添加 runtimeModule 引用
- 适配 IComponentRegistry 接口
- 修复物理组件在场景加载时未注册的问题
* feat(editor-core): 添加 UserCodeService 就绪信号机制
- 新增 waitForReady()/signalReady() API
- 支持等待用户脚本编译完成
- 解决场景加载时组件未注册的时序问题
* fix(editor-app): 在编译完成后调用 signalReady()
确保用户脚本编译完成后发出就绪信号:
- 编译成功后调用 userCodeService.signalReady()
- 编译失败也要发出信号,避免阻塞场景加载
* feat(editor-core): 改进编辑器核心服务
- EntityStoreService 添加调试日志
- AssetRegistryService 优化资产注册
- PluginManager 改进插件管理
- IFileAPI 添加 getFileMtime 接口
* feat(engine): 改进 Rust 纹理管理器
- 支持任意 ID 的纹理加载(非递增)
- 添加纹理状态追踪 API
- 优化纹理缓存清理机制
- 更新 TypeScript 绑定
* feat(ui): 添加场景切换和文本闪烁组件
新增组件:
- SceneLoadTriggerComponent: 场景切换触发器
- TextBlinkComponent: 文本闪烁效果
新增系统:
- SceneLoadTriggerSystem: 处理场景切换逻辑
- TextBlinkSystem: 处理文本闪烁动画
其他改进:
- UIRuntimeModule 适配新组件注册接口
- UI 渲染系统优化
* feat(editor-app): 添加外部文件修改检测
- 新增 ExternalModificationDialog 组件
- TauriFileAPI 支持 getFileMtime
- 场景文件被外部修改时提示用户
* feat(editor-app): 添加渲染调试面板
- 新增 RenderDebugService 和调试面板 UI
- App/ContentBrowser 添加调试日志
- TitleBar/Viewport 优化
- DialogManager 改进
* refactor(editor-app): 编辑器服务和组件优化
- EngineService 改进引擎集成
- EditorEngineSync 同步优化
- AssetFileInspector 改进
- VectorFieldEditors 优化
- InstantiatePrefabCommand 改进
* feat(i18n): 更新国际化翻译
- 添加新功能相关翻译
- 更新中文、英文、西班牙文
* feat(tauri): 添加文件修改时间查询命令
- 新增 get_file_mtime 命令
- 支持检测文件外部修改
* refactor(particle): 粒子系统改进
- 适配新的组件注册接口
- ParticleSystem 优化
- 添加单元测试
* refactor(platform): 平台适配层优化
- BrowserRuntime 改进
- 新增 RuntimeSceneManager 服务
- 导出优化
* refactor(asset-system-editor): 资产元数据改进
- AssetMetaFile 优化
- 导出调整
* fix(asset-system): 移除未使用的 TextureLoader 导入
* fix(tests): 更新测试以使用 GlobalComponentRegistry 实例
修复多个测试文件以适配 ComponentRegistry 从静态类变为实例类的变更:
- ComponentStorage.test.ts: 使用 GlobalComponentRegistry.reset()
- EntitySerializer.test.ts: 使用 GlobalComponentRegistry 实例
- IncrementalSerialization.test.ts: 使用 GlobalComponentRegistry 实例
- SceneSerializer.test.ts: 使用 GlobalComponentRegistry 实例
- ComponentRegistry.extended.test.ts: 使用 GlobalComponentRegistry,同时注册到 scene.componentRegistry
- SystemTypes.test.ts: 在 Scene 创建前注册组件
- QuerySystem.test.ts: mockScene 添加 componentRegistry
|
2025-12-16 12:46:14 +08:00 |
|
yhh
|
240b165970
|
chore: 更新仓库 URL (ecs-framework → esengine)
仓库已从 esengine/ecs-framework 重命名为 esengine/esengine
更新所有引用旧 URL 的文件
|
2025-12-08 21:23:37 +08:00 |
|
github-actions[bot]
|
dd130eacb0
|
chore(editor): bump version to 1.0.14 (#280)
Co-authored-by: esengine <18465053+esengine@users.noreply.github.com>
|
2025-12-05 16:45:52 +08:00 |
|
YHH
|
6702f0bfad
|
feat(editor): 完善用户代码热更新和环境检测 (#275)
* fix: 更新 bundle-runtime 脚本使用正确的 platform-web 输出文件
原脚本引用的 runtime.browser.js 不存在,改为使用 index.mjs
* feat(editor): 完善用户代码热更新和环境检测
## 热更新改进
- 添加 hotReloadInstances() 方法,通过更新原型链实现真正的热更新
- 组件实例保留数据,仅更新方法
- ComponentRegistry 支持热更新时替换同名组件类
## 环境检测
- 启动时检测 esbuild 可用性
- 在启动页面底部显示环境状态指示器
- 添加 check_environment Rust 命令和前端 API
## esbuild 打包
- 将 esbuild 二进制文件打包到应用中
- 用户无需全局安装 esbuild
- 支持 Windows/macOS/Linux 平台
## 文件监视优化
- 添加 300ms 防抖,避免重复编译
- 修复路径分隔符混合问题
## 资源打包修复
- 修复 Tauri 资源配置,保留 engine 目录结构
- 添加 src-tauri/bin/ 和 src-tauri/engine/ 到 gitignore
* fix: 将热更新模式改为可选,修复测试失败
- ComponentRegistry 添加 hotReloadEnabled 标志,默认禁用
- 只有启用热更新模式时才会替换同名组件类
- 编辑器环境自动启用热更新模式
- reset() 方法中重置热更新标志
* test: 添加热更新模式的测试用例
|
2025-12-05 14:24:09 +08:00 |
|
github-actions[bot]
|
88af781d78
|
chore(editor): bump version to 1.0.13 (#255)
Co-authored-by: esengine <18465053+esengine@users.noreply.github.com>
|
2025-12-02 00:07:52 +08:00 |
|
github-actions[bot]
|
189714c727
|
chore(editor): bump version to 1.0.12 (#250)
Co-authored-by: esengine <18465053+esengine@users.noreply.github.com>
|
2025-11-30 01:07:19 +08:00 |
|
YHH
|
359886c72f
|
Feature/physics and tilemap enhancement (#247)
* feat(behavior-tree,tilemap): 修复编辑器连线缩放问题并增强插件系统
* feat(node-editor,blueprint): 新增通用节点编辑器和蓝图可视化脚本系统
* feat(editor,tilemap): 优化编辑器UI样式和Tilemap编辑器功能
* fix: 修复CodeQL安全警告和CI类型检查错误
* fix: 修复CodeQL安全警告和CI类型检查错误
* fix: 修复CodeQL安全警告和CI类型检查错误
|
2025-11-29 23:00:48 +08:00 |
|
github-actions[bot]
|
c5642a8605
|
chore(editor): bump version to 1.0.11 (#245)
Co-authored-by: esengine <18465053+esengine@users.noreply.github.com>
|
2025-11-28 11:01:04 +08:00 |
|
github-actions[bot]
|
b22faaac86
|
chore(editor): bump version to 1.0.10 (#241)
Co-authored-by: esengine <18465053+esengine@users.noreply.github.com>
|
2025-11-27 21:05:40 +08:00 |
|
YHH
|
107439d70c
|
Feature/runtime cdn and plugin loader (#240)
* feat(ui): 完善 UI 布局系统和编辑器可视化工具
* refactor: 移除 ModuleRegistry,统一使用 PluginManager 插件系统
* fix: 修复 CodeQL 警告并提升测试覆盖率
* refactor: 分离运行时入口点,解决 runtime bundle 包含 React 的问题
* fix(ci): 添加 editor-core 和 editor-runtime 到 CI 依赖构建步骤
* docs: 完善 ServiceContainer 文档,新增 Symbol.for 模式和 @InjectProperty 说明
* fix(ci): 修复 type-check 失败问题
* fix(ci): 修复类型检查失败问题
* fix(ci): 修复类型检查失败问题
* fix(ci): behavior-tree 构建添加 @tauri-apps 外部依赖
* fix(ci): behavior-tree 添加 @tauri-apps/plugin-fs 类型依赖
* fix(ci): platform-web 添加缺失的 behavior-tree 依赖
* fix(lint): 移除正则表达式中不必要的转义字符
|
2025-11-27 20:42:46 +08:00 |
|
github-actions[bot]
|
71869b1a58
|
chore(editor): bump version to 1.0.9 (#239)
Co-authored-by: esengine <18465053+esengine@users.noreply.github.com>
|
2025-11-26 11:47:09 +08:00 |
|
YHH
|
3fb6f919f8
|
Feature/tilemap editor (#237)
* feat: 添加 Tilemap 编辑器插件和组件生命周期支持
* feat(editor-core): 添加声明式插件注册 API
* feat(editor-core): 改进tiledmap结构合并tileset进tiledmapeditor
* feat: 添加 editor-runtime SDK 和插件系统改进
* fix(ci): 修复SceneResourceManager里变量未使用问题
|
2025-11-25 22:23:19 +08:00 |
|
github-actions[bot]
|
a61baa83a7
|
chore(editor): bump version to 1.0.8 (#235)
Co-authored-by: esengine <18465053+esengine@users.noreply.github.com>
|
2025-11-23 22:21:20 +08:00 |
|
yhh
|
afebeecd68
|
fix(ci): 修复 Tauri 构建缺少 runtime 文件的问题
|
2025-11-23 22:08:38 +08:00 |
|
YHH
|
32460ac133
|
feat(editor): 优化编辑器UI和改进核心功能 (#234)
* feat(editor): 优化编辑器UI和改进核心功能
* feat(editor): 优化编辑器UI和改进核心功能
|
2025-11-23 21:45:10 +08:00 |
|
github-actions[bot]
|
4d95a7f044
|
chore(editor): bump version to 1.0.7 (#233)
Co-authored-by: esengine <18465053+esengine@users.noreply.github.com>
|
2025-11-23 16:30:14 +08:00 |
|
github-actions[bot]
|
b15cbab313
|
chore(editor): bump version to 1.0.6 (#231)
Co-authored-by: esengine <18465053+esengine@users.noreply.github.com>
|
2025-11-21 12:42:30 +08:00 |
|
YHH
|
bce3a6e253
|
refactor(editor): 提取行为树编辑器为独立包并重构编辑器架构 (#216)
* refactor(editor): 提取行为树编辑器为独立包并重构编辑器架构
* feat(editor): 添加插件市场功能
* feat(editor): 重构插件市场以支持版本管理和ZIP打包
* feat(editor): 重构插件发布流程并修复React渲染警告
* fix(plugin): 修复插件发布和市场的路径不一致问题
* feat: 重构插件发布流程并添加插件删除功能
* fix(editor): 完善插件删除功能并修复多个关键问题
* fix(auth): 修复自动登录与手动登录的竞态条件问题
* feat(editor): 重构插件管理流程
* feat(editor): 支持 ZIP 文件直接发布插件
- 新增 PluginSourceParser 解析插件源
- 重构发布流程支持文件夹和 ZIP 两种方式
- 优化发布向导 UI
* feat(editor): 插件市场支持多版本安装
- 插件解压到项目 plugins 目录
- 新增 Tauri 后端安装/卸载命令
- 支持选择任意版本安装
- 修复打包逻辑,保留完整 dist 目录结构
* feat(editor): 个人中心支持多版本管理
- 合并同一插件的不同版本
- 添加版本历史展开/折叠功能
- 禁止有待审核 PR 时更新插件
* fix(editor): 修复 InspectorRegistry 服务注册
- InspectorRegistry 实现 IService 接口
- 注册到 Core.services 供插件使用
* feat(behavior-tree-editor): 完善插件注册和文件操作
- 添加文件创建模板和操作处理器
- 实现右键菜单创建行为树功能
- 修复文件读取权限问题(使用 Tauri 命令)
- 添加 BehaviorTreeEditorPanel 组件
- 修复 rollup 配置支持动态导入
* feat(plugin): 完善插件构建和发布流程
* fix(behavior-tree-editor): 完整恢复编辑器并修复 Toast 集成
* fix(behavior-tree-editor): 修复节点选中、连线跟随和文件加载问题并优化性能
* fix(behavior-tree-editor): 修复端口连接失败问题并优化连线样式
* refactor(behavior-tree-editor): 移除调试面板功能简化代码结构
* refactor(behavior-tree-editor): 清理冗余代码合并重复逻辑
* feat(behavior-tree-editor): 完善编辑器核心功能增强扩展性
* fix(lint): 修复ESLint错误确保CI通过
* refactor(behavior-tree-editor): 优化编辑器工具栏和编译器功能
* refactor(behavior-tree-editor): 清理技术债务,优化代码质量
* fix(editor-app): 修复字符串替换安全问题
|
2025-11-18 14:46:51 +08:00 |
|
github-actions[bot]
|
6778ccace4
|
chore(editor): bump version to 1.0.5 (#201)
Co-authored-by: esengine <18465053+esengine@users.noreply.github.com>
|
2025-10-31 17:42:41 +08:00 |
|
github-actions[bot]
|
2f63034d9a
|
chore(editor): bump version to 1.0.4 (#192)
Co-authored-by: esengine <18465053+esengine@users.noreply.github.com>
Co-authored-by: YHH <359807859@qq.com>
|
2025-10-27 10:25:27 +08:00 |
|
YHH
|
009f8af4e1
|
Feature/ecs behavior tree (#188)
* feat(behavior-tree): 完全 ECS 化的行为树系统
* feat(editor-app): 添加行为树可视化编辑器
* chore: 移除 Cocos Creator 扩展目录
* feat(editor-app): 行为树编辑器功能增强
* fix(editor-app): 修复 TypeScript 类型错误
* feat(editor-app): 使用 FlexLayout 重构面板系统并优化资产浏览器
* feat(editor-app): 改进编辑器UI样式并修复行为树执行顺序
* feat(behavior-tree,editor-app): 添加装饰器系统并优化编辑器性能
* feat(behavior-tree,editor-app): 添加属性绑定系统
* feat(editor-app,behavior-tree): 优化编辑器UI并改进行为树功能
* feat(editor-app,behavior-tree): 添加全局黑板系统并增强资产浏览器功能
* feat(behavior-tree,editor-app): 添加运行时资产导出系统
* feat(behavior-tree,editor-app): 添加SubTree系统和资产选择器
* feat(behavior-tree,editor-app): 优化系统架构并改进编辑器文件管理
* fix(behavior-tree,editor-app): 修复SubTree节点错误显示空节点警告
* fix(editor-app): 修复局部黑板类型定义文件扩展名错误
|
2025-10-27 09:29:11 +08:00 |
|
esengine
|
dff400bf22
|
chore(editor): bump version to 1.0.3
|
2025-10-16 15:52:45 +00:00 |
|
YHH
|
27ce902344
|
配置createUpdaterArtifacts生成sig
|
2025-10-16 23:38:11 +08:00 |
|
esengine
|
f8539d7958
|
chore(editor): bump version to 1.0.1
|
2025-10-16 15:08:22 +00:00 |
|
YHH
|
011e43811a
|
热更新配置
|
2025-10-16 22:26:50 +08:00 |
|
YHH
|
f0046c7dc2
|
新增icons作为编辑器图标
|
2025-10-16 19:52:17 +08:00 |
|
YHH
|
c676006632
|
构建配置
|
2025-10-16 17:44:57 +08:00 |
|
YHH
|
fb7a1b1282
|
可动态识别属性
|
2025-10-15 17:15:05 +08:00 |
|
YHH
|
85dad41e60
|
Tauri 窗口,显示编辑器界面
|
2025-10-14 23:15:07 +08:00 |
|
YHH
|
bd839cf431
|
Tauri 编辑器应用框架
|
2025-10-14 22:53:26 +08:00 |
|