yhh
|
2476379af1
|
docs: 更新 worker-generator 版本号为 v1.0.2
|
2025-12-08 18:34:49 +08:00 |
|
yhh
|
e0d659fe46
|
fix(worker-generator): 映射文件不再放入 workers 目录避免微信编译错误
|
2025-12-08 18:33:23 +08:00 |
|
yhh
|
9ff03c04f3
|
docs: 更新 worker-generator 版本号为 v1.0.1
|
2025-12-08 17:17:26 +08:00 |
|
yhh
|
7b45fbeab3
|
fix(worker-generator): 将 typescript 移至 dependencies 以修复运行时依赖问题
|
2025-12-08 17:12:30 +08:00 |
|
yhh
|
a733a53d3e
|
chore(release): 准备发布 v2.3.2 和 worker-generator v1.0.0
- 更新 @esengine/ecs-framework 版本号到 2.3.2
- 更新中英文 changelog
|
2025-12-08 17:04:01 +08:00 |
|
YHH
|
dfd0dfc7f9
|
feat(worker): 添加微信小游戏 Worker 支持和 Worker Generator CLI (#297)
* feat(worker): 添加微信小游戏 Worker 支持和 Worker Generator CLI
- 新增 @esengine/worker-generator 包,用于从 WorkerEntitySystem 生成 Worker 文件
- WorkerEntitySystem 添加 workerScriptPath 配置项,支持预编译 Worker 脚本
- CLI 工具支持 --wechat 模式,自动转换 ES6+ 为 ES5 语法
- 修复微信小游戏 Worker 消息格式差异(res 直接是数据,无需 .data)
- 更新中英文文档,添加微信小游戏支持章节
* docs: 更新 changelog,添加 v2.3.1 说明并标注 v2.3.0 为废弃
* fix: 修复 CI 检查问题
- 移除 cli.ts 中未使用的 toKebabCase 函数
- 修复 generator.ts 中正则表达式的 ReDoS 风险(使用 [ \t] 替代 \s*)
- 更新 changelog 版本号(2.3.1 -> 2.3.2)
* docs: 移除未发布版本的 changelog 条目
* fix(worker-generator): 使用 TypeScript 编译器替代手写正则进行 ES5 转换
- 修复 CodeQL 检测的 ReDoS 安全问题
- 使用 ts.transpileModule 进行安全可靠的代码转换
- 移除所有可能导致回溯的正则表达式
|
2025-12-08 17:02:11 +08:00 |
|
YHH
|
52bbccd53c
|
feat(particle): 添加粒子与 Rapier2D 物理碰撞集成 (#295)
* feat(particle): 添加粒子与 Rapier2D 物理碰撞集成
- 新增 Physics2DCollisionModule 模块,支持粒子与场景碰撞体交互
- 支持圆形重叠检测和射线检测两种模式
- 支持 Kill/Bounce/Stop 三种碰撞行为
- 修复 module.update() 参数顺序 bug
- 物理模块自动通过 context 注入,用户只需添加模块即可
* chore: update pnpm-lock.yaml for particle physics dependency
Update lockfile to include @esengine/physics-rapier2d as optional peer dependency.
|
2025-12-08 09:38:37 +08:00 |
|
YHH
|
d92c2a7b66
|
feat(asset): 增强资产管理系统和编辑器 UI (#291)
* fix(editor): 修复粒子实体创建和优化检视器
- 添加 effects 分类到右键菜单,修复粒子实体无法创建的问题
- 添加粒子效果的本地化标签
- 简化粒子组件检视器,优先显示资产文件选择
- 高级属性只在未选择资产时显示,且默认折叠
- 添加可折叠的属性分组提升用户体验
* fix(particle): 修复粒子系统在浏览器预览中的资产加载和渲染
- 添加粒子 Gizmo 支持,显示发射形状并响应 Transform 缩放/旋转
- 修复资产热重载:添加 reloadAsset() 方法和 assets:refresh 事件监听
- 修复 VectorFieldEditors 数值输入精度(step 改为 0.01)
- 修复浏览器预览中粒子资产加载失败的问题:
- 将相对路径转换为绝对路径以正确复制资产文件
- 使用原始 GUID 而非生成的 GUID 构建 asset catalog
- 初始化全局 assetManager 单例的 catalog 和 loader
- 在 GameRuntime 的 systemContext 中添加 engineIntegration
- 公开 AssetManager.initializeFromCatalog 方法供运行时使用
* feat(asset): 增强资产管理系统和编辑器 UI
主要改动:
- 添加 loaderType 字段支持显式指定加载器类型覆盖
- 添加 .particle 扩展名和类型映射
- 新增 MANAGED_ASSET_DIRECTORIES 常量和相关工具方法
- EngineService 使用全局 assetManager 并同步 AssetRegistry 数据
- 修复插件启用逻辑,defaultEnabled=true 的新插件不被旧配置禁用
- ContentBrowser 添加 GUID 管理目录指示和非托管目录警告
- AssetPickerDialog 和 AssetFileInspector UI 增强
|
2025-12-07 20:26:03 +08:00 |
|
YHH
|
568b327425
|
fix(particle): 修复粒子系统在浏览器预览中的资产加载和渲染 (#290)
* fix(editor): 修复粒子实体创建和优化检视器
- 添加 effects 分类到右键菜单,修复粒子实体无法创建的问题
- 添加粒子效果的本地化标签
- 简化粒子组件检视器,优先显示资产文件选择
- 高级属性只在未选择资产时显示,且默认折叠
- 添加可折叠的属性分组提升用户体验
* fix(particle): 修复粒子系统在浏览器预览中的资产加载和渲染
- 添加粒子 Gizmo 支持,显示发射形状并响应 Transform 缩放/旋转
- 修复资产热重载:添加 reloadAsset() 方法和 assets:refresh 事件监听
- 修复 VectorFieldEditors 数值输入精度(step 改为 0.01)
- 修复浏览器预览中粒子资产加载失败的问题:
- 将相对路径转换为绝对路径以正确复制资产文件
- 使用原始 GUID 而非生成的 GUID 构建 asset catalog
- 初始化全局 assetManager 单例的 catalog 和 loader
- 在 GameRuntime 的 systemContext 中添加 engineIntegration
- 公开 AssetManager.initializeFromCatalog 方法供运行时使用
|
2025-12-07 01:00:35 +08:00 |
|
YHH
|
1fb702169e
|
feat(asset-system): 完善资源加载和场景资源管理 (#289)
- 添加 AudioLoader 支持音频资源加载 (mp3/wav/ogg/m4a/flac/aac)
- EngineIntegration 添加音频资源加载/卸载支持
- EngineIntegration 添加数据(JSON)资源加载/卸载支持
- SceneResourceManager 实现完整的引用计数机制
- SceneResourceManager 实现场景资源卸载,仅卸载无引用的资源
- 添加资源统计和引用计数查询接口
|
2025-12-06 14:47:35 +08:00 |
|
YHH
|
3617f40309
|
feat(asset): 统一资产引用使用 GUID 替代路径 (#287)
* feat(world-streaming): 添加世界流式加载系统
实现基于区块的世界流式加载系统,支持开放世界游戏:
运行时包 (@esengine/world-streaming):
- ChunkComponent: 区块实体组件,包含坐标、边界、状态
- StreamingAnchorComponent: 流式锚点组件(玩家/摄像机)
- ChunkLoaderComponent: 流式加载配置组件
- ChunkStreamingSystem: 区块加载/卸载调度系统
- ChunkCullingSystem: 区块可见性剔除系统
- ChunkManager: 区块生命周期管理服务
- SpatialHashGrid: 空间哈希网格
- ChunkSerializer: 区块序列化
编辑器包 (@esengine/world-streaming-editor):
- ChunkVisualizer: 区块可视化覆盖层
- ChunkLoaderInspectorProvider: 区块加载器检视器
- StreamingAnchorInspectorProvider: 流式锚点检视器
- WorldStreamingPlugin: 完整插件导出
* feat(asset): 统一资产引用使用 GUID 替代路径
将所有组件的资产引用字段从路径改为 GUID:
- SpriteComponent: texture -> textureGuid, material -> materialGuid
- SpriteAnimatorComponent: AnimationFrame.texture -> textureGuid
- UIRenderComponent: texture -> textureGuid
- UIButtonComponent: normalTexture -> normalTextureGuid 等
- AudioSourceComponent: clip -> clipGuid
- ParticleSystemComponent: 已使用 textureGuid
修复 AssetRegistryService 注册问题和路径规范化,
添加渲染系统的 GUID 解析支持。
* fix(sprite-editor): 更新 material 为 materialGuid
* fix(editor-app): 更新 AnimationFrame.texture 为 textureGuid
|
2025-12-06 14:08:48 +08:00 |
|
YHH
|
0c03b13d74
|
feat(world-streaming): 添加世界流式加载系统 (#288)
实现基于区块的世界流式加载系统,支持开放世界游戏:
运行时包 (@esengine/world-streaming):
- ChunkComponent: 区块实体组件,包含坐标、边界、状态
- StreamingAnchorComponent: 流式锚点组件(玩家/摄像机)
- ChunkLoaderComponent: 流式加载配置组件
- ChunkStreamingSystem: 区块加载/卸载调度系统
- ChunkCullingSystem: 区块可见性剔除系统
- ChunkManager: 区块生命周期管理服务
- SpatialHashGrid: 空间哈希网格
- ChunkSerializer: 区块序列化
编辑器包 (@esengine/world-streaming-editor):
- ChunkVisualizer: 区块可视化覆盖层
- ChunkLoaderInspectorProvider: 区块加载器检视器
- StreamingAnchorInspectorProvider: 流式锚点检视器
- WorldStreamingPlugin: 完整插件导出
|
2025-12-06 13:56:01 +08:00 |
|
YHH
|
3cbfa1e4cb
|
fix(editor): 修复右键菜单和粒子编辑器问题 (#286)
- 修复右键菜单被状态栏遮挡的问题
- 修复右键菜单边界检测,考虑标题栏和状态栏高度
- 调整右键菜单结构:新建文件夹 → 资源类型 → 工具操作
- 修复 Particle 插件默认未启用的问题(defaultEnabled 的新插件不被旧配置禁用)
- 修复 SizeOverLifetime 模块在预览中无效果的问题
- 移除 MaterialEditorModule 中的重复模板注册
|
2025-12-06 11:56:25 +08:00 |
|
yhh
|
397f79caa5
|
docs: 更新 v2.3.0 版本文档和 changelog
- 添加 v2.3.0 changelog(中英文)
- 更新文档版本号从 v2.2.22+ 到 v2.3.0+
- 更新 package.json 版本至 2.3.0
- vitepress 配置添加 ignoreDeadLinks
|
2025-12-06 10:44:08 +08:00 |
|
yhh
|
972c1d5357
|
Merge branch 'master' of https://github.com/esengine/ecs-framework
|
2025-12-06 10:15:13 +08:00 |
|
YHH
|
32d35ef2ee
|
feat(particle): 添加完整粒子系统和粒子编辑器 (#284)
* feat(editor-core): 添加用户系统自动注册功能
- IUserCodeService 新增 registerSystems/unregisterSystems/getRegisteredSystems 方法
- UserCodeService 实现系统检测、实例化和场景注册逻辑
- ServiceRegistry 在预览开始时注册用户系统,停止时移除
- 热更新时自动重新加载用户系统
- 更新 System 脚本模板添加 @ECSSystem 装饰器
* feat(editor-core): 添加编辑器脚本支持(Inspector/Gizmo)
- registerEditorExtensions 实际注册用户 Inspector 和 Gizmo
- 添加 unregisterEditorExtensions 方法
- ServiceRegistry 在项目加载时编译并加载编辑器脚本
- 项目关闭时自动清理编辑器扩展
- 添加 Inspector 和 Gizmo 脚本创建模板
* feat(particle): 添加粒子系统和粒子编辑器
新增两个包:
- @esengine/particle: 粒子系统核心库
- @esengine/particle-editor: 粒子编辑器 UI
粒子系统功能:
- ECS 组件架构,支持播放/暂停/重置控制
- 7种发射形状:点、圆、环、矩形、边缘、线、锥形
- 5个动画模块:颜色渐变、缩放曲线、速度控制、旋转、噪声
- 纹理动画模块支持精灵表动画
- 3种混合模式:Normal、Additive、Multiply
- 11个内置预设:火焰、烟雾、爆炸、雨、雪等
- 对象池优化,支持粒子复用
编辑器功能:
- 实时 Canvas 预览,支持全屏和鼠标跟随
- 点击触发爆发效果(用于测试爆炸类特效)
- 渐变编辑器:可视化颜色关键帧编辑
- 曲线编辑器:支持缩放曲线和缓动函数
- 预设浏览器:快速应用内置预设
- 模块开关:独立启用/禁用各个模块
- Vector2 样式输入(重力 X/Y)
* feat(particle): 完善粒子系统核心功能
1. Burst 定时爆发系统
- BurstConfig 接口支持时间、数量、循环次数、间隔
- 运行时自动处理定时爆发
- 支持无限循环爆发
2. 速度曲线模块 (VelocityOverLifetimeModule)
- 6种曲线类型:Constant、Linear、EaseIn、EaseOut、EaseInOut、Custom
- 自定义关键帧曲线支持
- 附加速度 X/Y
- 轨道速度和径向速度
3. 碰撞边界模块 (CollisionModule)
- 矩形和圆形边界类型
- 3种碰撞行为:Kill、Bounce、Wrap
- 反弹系数和最小速度阈值
- 反弹时生命损失
* feat(particle): 添加力场模块、碰撞模块和世界/本地空间支持
- 新增 ForceFieldModule 支持风力、吸引点、漩涡、湍流四种力场类型
- 新增 SimulationSpace 枚举支持世界空间和本地空间切换
- ParticleSystemComponent 集成力场模块和空间模式
- 粒子编辑器添加 Collision 和 ForceField 模块的 UI 编辑支持
- 新增 Vortex、Leaves、Bouncing 三个预设展示新功能
- 编辑器预览实现完整的碰撞和力场效果
* fix(particle): 移除未使用的 transform 循环变量
|
2025-12-05 23:03:31 +08:00 |
|
yhh
|
57e165779e
|
Merge branch 'master' of https://github.com/esengine/ecs-framework
|
2025-12-05 22:59:24 +08:00 |
|
YHH
|
690d7859c8
|
feat(core): 添加持久化实体支持跨场景迁移 (#285)
实现实体生命周期策略,允许标记实体为持久化,在场景切换时自动迁移到新场景。
主要变更:
- 新增 EEntityLifecyclePolicy 枚举(SceneLocal/Persistent)
- Entity 添加 setPersistent()、setSceneLocal()、isPersistent API
- Scene 添加 findPersistentEntities()、extractPersistentEntities()、receiveMigratedEntities()
- SceneManager.setScene() 自动处理持久化实体迁移
- 添加完整的中英文文档和 21 个测试用例
|
2025-12-05 22:54:41 +08:00 |
|
yhh
|
8f9a7d8581
|
feat(core): 添加持久化实体支持跨场景迁移
实现实体生命周期策略,允许标记实体为持久化,在场景切换时自动迁移到新场景。
主要变更:
- 新增 EEntityLifecyclePolicy 枚举(SceneLocal/Persistent)
- Entity 添加 setPersistent()、setSceneLocal()、isPersistent API
- Scene 添加 findPersistentEntities()、extractPersistentEntities()、receiveMigratedEntities()
- SceneManager.setScene() 自动处理持久化实体迁移
- 添加完整的中英文文档和 21 个测试用例
|
2025-12-05 22:46:53 +08:00 |
|
YHH
|
3d5fcc1a55
|
feat(editor-core): 添加用户系统自动注册功能 (#283)
* feat(editor-core): 添加用户系统自动注册功能
- IUserCodeService 新增 registerSystems/unregisterSystems/getRegisteredSystems 方法
- UserCodeService 实现系统检测、实例化和场景注册逻辑
- ServiceRegistry 在预览开始时注册用户系统,停止时移除
- 热更新时自动重新加载用户系统
- 更新 System 脚本模板添加 @ECSSystem 装饰器
* feat(editor-core): 添加编辑器脚本支持(Inspector/Gizmo)
- registerEditorExtensions 实际注册用户 Inspector 和 Gizmo
- 添加 unregisterEditorExtensions 方法
- ServiceRegistry 在项目加载时编译并加载编辑器脚本
- 项目关闭时自动清理编辑器扩展
- 添加 Inspector 和 Gizmo 脚本创建模板
|
2025-12-05 18:28:11 +08:00 |
|
YHH
|
823e0c1d94
|
feat(engine-core): 添加统一输入系统 (#282)
* perf(core): 优化 EntitySystem 迭代性能,添加 CommandBuffer 延迟命令
ReactiveQuery 快照优化:
- 添加快照机制,避免每帧拷贝数组
- 只在实体列表变化时创建新快照
- 静态场景下多个系统共享同一快照
CommandBuffer 延迟命令系统:
- 支持延迟添加/移除组件、销毁实体、设置实体激活状态
- 每个系统拥有独立的 commands 属性
- 命令在帧末统一执行,避免迭代过程中修改实体列表
Scene 更新:
- 在 lateUpdate 后自动刷新所有系统的命令缓冲区
文档:
- 更新系统文档,添加 CommandBuffer 使用说明
* fix(ci): upgrade first-interaction action to v1.3.0
Fix Docker build failure in welcome workflow.
* fix(ci): upgrade pnpm/action-setup to v4 and fix unused import
- Upgrade pnpm/action-setup@v2 to v4 in all workflow files
- Remove unused CommandType import in CommandBuffer.test.ts
* fix(ci): remove duplicate pnpm version specification
* feat(engine-core): 添加统一输入系统
添加完整的输入系统,支持平台抽象:
- IPlatformInputSubsystem: 扩展接口支持键盘/鼠标/滚轮事件
- WebInputSubsystem: 浏览器实现,支持事件绑定/解绑
- InputManager: 全局输入状态管理器(键盘、鼠标、触摸)
- InputSystem: ECS 系统,连接平台事件到 InputManager
- GameRuntime 集成: 自动创建 InputSystem 并绑定平台子系统
使用方式:
```typescript
import { Input, MouseButton } from '@esengine/engine-core';
if (Input.isKeyDown('KeyW')) { /* 移动 */ }
if (Input.isKeyJustPressed('Space')) { /* 跳跃 */ }
if (Input.isMouseButtonDown(MouseButton.Left)) { /* 射击 */ }
```
* fix(runtime-core): 添加缺失的 platform-common 依赖
* fix(runtime-core): 移除 platform-web 依赖避免循环依赖
* fix(runtime-core): 使用工厂函数注入 InputSubsystem 避免循环依赖
- BrowserPlatformAdapter 通过 inputSubsystemFactory 配置接收输入子系统
- 在 IPlatformInputSubsystem 接口添加可选的 dispose 方法
- 移除对 @esengine/platform-web 的直接依赖
|
2025-12-05 18:15:50 +08:00 |
|
YHH
|
13a149c3a2
|
perf(core): 优化 EntitySystem 迭代性能,添加 CommandBuffer 延迟命令 (#281)
* perf(core): 优化 EntitySystem 迭代性能,添加 CommandBuffer 延迟命令
ReactiveQuery 快照优化:
- 添加快照机制,避免每帧拷贝数组
- 只在实体列表变化时创建新快照
- 静态场景下多个系统共享同一快照
CommandBuffer 延迟命令系统:
- 支持延迟添加/移除组件、销毁实体、设置实体激活状态
- 每个系统拥有独立的 commands 属性
- 命令在帧末统一执行,避免迭代过程中修改实体列表
Scene 更新:
- 在 lateUpdate 后自动刷新所有系统的命令缓冲区
文档:
- 更新系统文档,添加 CommandBuffer 使用说明
* fix(ci): upgrade first-interaction action to v1.3.0
Fix Docker build failure in welcome workflow.
* fix(ci): upgrade pnpm/action-setup to v4 and fix unused import
- Upgrade pnpm/action-setup@v2 to v4 in all workflow files
- Remove unused CommandType import in CommandBuffer.test.ts
* fix(ci): remove duplicate pnpm version specification
|
2025-12-05 17:24:33 +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
|
d0238add2d
|
fix: 当 esbuild 未打包时创建占位文件避免 Tauri 构建失败 (#276)
editor-v1.0.14
|
2025-12-05 16:24:26 +08:00 |
|
yhh
|
fe96d72ac6
|
docs: 补充 v2.2.21 changelog 中遗漏的迭代安全修复 (#272)
|
2025-12-05 16:17:18 +08:00 |
|
yhh
|
b2b8df9340
|
chore(core): release v2.2.21
- 优化 HierarchySystem 性能 (#279)
- 更新 changelog
|
2025-12-05 16:10:24 +08:00 |
|
YHH
|
2d56eaf11a
|
perf(core): 优化 HierarchySystem 避免每帧遍历所有实体 (#279)
使用脏实体集合代替每帧遍历所有实体,静态场景下 process() 从 O(n) 优化为 O(1)。
性能提升:
- 1000 实体静态场景: 81.79μs -> 0.07μs (快 1168 倍)
- 10000 实体静态场景: 939.43μs -> 0.56μs (快 1677 倍)
- 服务端模拟 (100房间 x 100实体): 2.7ms -> 1.4ms 每 tick
改动:
- 新增 dirtyEntities Set 追踪需要更新缓存的实体
- process() 只遍历脏实体
- markCacheDirty() 将实体加入脏集合
- onAdded() 在实体注册时将脏实体加入集合
- onRemoved() 将实体从脏集合移除
|
2025-12-05 16:07:53 +08:00 |
|
YHH
|
2cb9c471f9
|
fix(docs): 修正 v2.2.16 组件生命周期描述 (#278)
|
2025-12-05 16:01:07 +08:00 |
|
YHH
|
e8fc7f497b
|
docs: 添加 core 库更新日志 (v2.2.16 - v2.2.20) (#277)
|
2025-12-05 15:10:14 +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 |
|
YHH
|
d7454e3ca4
|
feat(engine): 添加编辑器模式标志控制编辑器UI显示 (#274)
* feat(engine): 添加编辑器模式标志控制编辑器UI显示
- 在 Rust 引擎中添加 isEditor 标志,控制网格、gizmos、坐标轴指示器的显示
- 运行时模式下自动隐藏所有编辑器专用 UI
- 编辑器预览和浏览器运行时通过 setEditorMode(false) 禁用编辑器 UI
- 添加 Scene.isEditorMode 延迟组件生命周期回调,直到 begin() 调用
- 修复用户组件注册到 Core ComponentRegistry 以支持序列化
- 修复 Run in Browser 时用户组件加载问题
* fix: 复制引擎模块的类型定义文件到 dist/engine
* fix: 修复用户项目 tsconfig paths 类型定义路径
- 从 module.json 读取实际包名而不是使用目录名
- 修复 .d.ts 文件复制逻辑,支持 .mjs 扩展名
|
2025-12-04 22:43:26 +08:00 |
|
YHH
|
0d9bab910e
|
feat(editor): 实现用户脚本编译加载和自动重编译 (#273)
|
2025-12-04 19:32:51 +08:00 |
|
YHH
|
3d16bbdc64
|
fix: 修复 process/lateProcess 迭代时组件变化导致跳过实体的问题 (#272)
- 在 update() 和 lateUpdate() 中创建实体数组副本,防止迭代过程中数组被修改
- lateUpdate() 现在重新查询实体以获取 update 阶段添加的新实体
- 添加 lawn-mower-demo 场景测试用例验证修复
- 更新中英文文档说明 onAdded/onRemoved 同步调用时机和 process/lateProcess 安全性
|
2025-12-04 15:11:01 +08:00 |
|
YHH
|
b4e7ba2abd
|
fix: 修复项目切换时运行时和系统重复初始化问题 (#267)
* feat(editor): 添加 GitHub Discussions 社区论坛功能
* chore: 更新 pnpm-lock.yaml
* chore: 删除测试图片
* refactor: 改用 Imgur 图床上传图片
* fix: 修复项目切换时运行时和系统重复初始化问题
* fix: 修复多个编辑器问题
* feat: 添加脚本编辑器配置和类型定义支持
* feat: 实现资产 .meta 文件自动生成功能
|
2025-12-04 14:04:39 +08:00 |
|
github-actions[bot]
|
374b26f7c6
|
chore(core): release v2.2.20 (#271)
Co-authored-by: esengine <18465053+esengine@users.noreply.github.com>
|
2025-12-04 13:01:47 +08:00 |
|
YHH
|
dbebb4f4fb
|
fix: 修复系统 onAdded 回调受注册顺序影响的问题 (#270)
|
2025-12-04 12:56:19 +08:00 |
|
github-actions[bot]
|
eec89b626c
|
chore(core): release v2.2.19 (#268)
Co-authored-by: esengine <18465053+esengine@users.noreply.github.com>
|
2025-12-04 11:36:12 +08:00 |
|
yhh
|
763d23e960
|
fix: 改用 Imgur 图床并删除测试图片
|
2025-12-04 09:57:33 +08:00 |
|
YHH
|
3b56ed17fe
|
feat(editor): 添加 GitHub Discussions 社区论坛功能 (#266)
* feat(editor): 添加 GitHub Discussions 社区论坛功能
* chore: 更新 pnpm-lock.yaml
|
2025-12-04 09:51:04 +08:00 |
|
YHH
|
4b8d22ac32
|
Upload forum image: 1764812524764-ic2nic.png
|
2025-12-04 09:42:06 +08:00 |
|
YHH
|
9cd873da14
|
Merge pull request #260 from esengine/fix/docs-dead-links
fix(docs): 修复英文文档dead links问题
|
2025-12-03 23:02:48 +08:00 |
|
yhh
|
c1799bf7b3
|
fix(docs): 修复英文文档dead links问题
|
2025-12-03 23:01:31 +08:00 |
|
YHH
|
85be826b62
|
Merge pull request #259 from esengine/feat/docs-i18n-clean
feat(docs): 添加中英文国际化支持
|
2025-12-03 22:51:54 +08:00 |
|
yhh
|
dd1ae97de7
|
feat(docs): 添加中英文国际化支持
|
2025-12-03 22:48:22 +08:00 |
|
YHH
|
63f006ab62
|
feat: 添加跨平台运行时、资产系统和UI适配功能 (#256)
* feat(platform-common): 添加WASM加载器和环境检测API
* feat(rapier2d): 新增Rapier2D WASM绑定包
* feat(physics-rapier2d): 添加跨平台WASM加载器
* feat(asset-system): 添加运行时资产目录和bundle格式
* feat(asset-system-editor): 新增编辑器资产管理包
* feat(editor-core): 添加构建系统和模块管理
* feat(editor-app): 重构浏览器预览使用import maps
* feat(platform-web): 添加BrowserRuntime和资产读取
* feat(engine): 添加材质系统和着色器管理
* feat(material): 新增材质系统和着色器编辑器
* feat(tilemap): 增强tilemap编辑器和动画系统
* feat(modules): 添加module.json配置
* feat(core): 添加module.json和类型定义更新
* chore: 更新依赖和构建配置
* refactor(plugins): 更新插件模板使用ModuleManifest
* chore: 添加第三方依赖库
* chore: 移除BehaviourTree-ai和ecs-astar子模块
* docs: 更新README和文档主题样式
* fix: 修复Rust文档测试和添加rapier2d WASM绑定
* fix(tilemap-editor): 修复画布高DPI屏幕分辨率适配问题
* feat(ui): 添加UI屏幕适配系统(CanvasScaler/SafeArea)
* fix(ecs-engine-bindgen): 添加缺失的ecs-framework-math依赖
* fix: 添加缺失的包依赖修复CI构建
* fix: 修复CodeQL检测到的代码问题
* fix: 修复构建错误和缺失依赖
* fix: 修复类型检查错误
* fix(material-system): 修复tsconfig配置支持TypeScript项目引用
* fix(editor-core): 修复Rollup构建配置添加tauri external
* fix: 修复CodeQL检测到的代码问题
* fix: 修复CodeQL检测到的代码问题
|
2025-12-03 22:15:22 +08:00 |
|
YHH
|
caf7622aa0
|
Merge pull request #257 from esengine/feat/system-stable-sorting
feat(ecs): 添加系统稳定排序支持
|
2025-12-03 21:01:52 +08:00 |
|
yhh
|
d746cf3bb8
|
feat(ecs): 添加系统稳定排序支持
|
2025-12-03 20:54:34 +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 |
|
yhh
|
15d5d37e50
|
fix(docs): 修复 hierarchy.md 中的死链接
将不存在的 ./transform.md 链接替换为 ./component.md
editor-v1.0.13
|
2025-12-01 23:36:20 +08:00 |
|
imgbot[bot]
|
b9aaf894d7
|
[ImgBot] Optimize images (#252)
*Total -- 1,159.60kb -> 862.13kb (25.65%)
/screenshots/main_screetshot.png -- 175.29kb -> 84.97kb (51.52%)
/screenshots/settings.png -- 44.17kb -> 25.59kb (42.06%)
/screenshots/plugin_manager.png -- 60.70kb -> 37.42kb (38.35%)
/screenshots/about.png -- 32.89kb -> 23.61kb (28.21%)
/screenshots/performance_profiler.png -- 564.36kb -> 420.67kb (25.46%)
/packages/editor-app/src-tauri/icons/128x128.png -- 4.76kb -> 4.40kb (7.55%)
/packages/editor-app/src-tauri/icons/ios/AppIcon-512@2x.png -- 58.30kb -> 54.30kb (6.86%)
/packages/editor-app/src-tauri/icons/Square107x107Logo.png -- 3.96kb -> 3.73kb (5.75%)
/packages/editor-app/src-tauri/icons/Square142x142Logo.png -- 5.44kb -> 5.13kb (5.69%)
/packages/editor-app/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png -- 3.16kb -> 2.98kb (5.69%)
/packages/editor-app/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png -- 3.16kb -> 2.98kb (5.69%)
/packages/editor-app/src-tauri/icons/ios/AppIcon-40x40@2x-1.png -- 2.61kb -> 2.47kb (5.35%)
/packages/editor-app/src-tauri/icons/ios/AppIcon-40x40@2x.png -- 2.61kb -> 2.47kb (5.35%)
/packages/editor-app/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png -- 4.06kb -> 3.87kb (4.73%)
/packages/editor-app/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png -- 7.68kb -> 7.34kb (4.41%)
/packages/editor-app/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png -- 7.68kb -> 7.34kb (4.41%)
/packages/editor-app/src-tauri/icons/ios/AppIcon-40x40@3x.png -- 4.58kb -> 4.38kb (4.33%)
/packages/editor-app/src-tauri/icons/ios/AppIcon-60x60@2x.png -- 4.58kb -> 4.38kb (4.33%)
/packages/editor-app/src-tauri/icons/64x64.png -- 2.11kb -> 2.02kb (4.21%)
/packages/editor-app/src-tauri/icons/Square310x310Logo.png -- 13.92kb -> 13.36kb (4.04%)
/packages/editor-app/src-tauri/icons/Square89x89Logo.png -- 2.99kb -> 2.87kb (3.95%)
/packages/editor-app/src-tauri/icons/Square284x284Logo.png -- 12.53kb -> 12.04kb (3.89%)
/packages/editor-app/src-tauri/icons/Square150x150Logo.png -- 5.84kb -> 5.62kb (3.83%)
/packages/editor-app/src-tauri/icons/icon.png -- 25.58kb -> 24.61kb (3.81%)
/packages/editor-app/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png -- 6.73kb -> 6.47kb (3.75%)
/packages/editor-app/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png -- 6.27kb -> 6.03kb (3.72%)
/packages/editor-app/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png -- 14.68kb -> 14.15kb (3.59%)
/packages/editor-app/src-tauri/icons/ios/AppIcon-76x76@2x.png -- 6.06kb -> 5.85kb (3.51%)
/packages/editor-app/src-tauri/icons/128x128@2x.png -- 10.88kb -> 10.53kb (3.21%)
/packages/editor-app/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png -- 5.66kb -> 5.48kb (3.21%)
/packages/editor-app/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png -- 5.66kb -> 5.48kb (3.21%)
/packages/editor-app/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png -- 9.02kb -> 8.78kb (2.74%)
/packages/editor-app/src-tauri/icons/ios/AppIcon-60x60@3x.png -- 7.22kb -> 7.02kb (2.65%)
/packages/editor-app/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png -- 20.92kb -> 20.40kb (2.49%)
/packages/editor-app/src-tauri/icons/Square71x71Logo.png -- 2.38kb -> 2.33kb (1.81%)
/packages/editor-app/src-tauri/icons/ios/AppIcon-76x76@1x.png -- 2.52kb -> 2.47kb (1.79%)
/packages/editor-app/src-tauri/icons/ios/AppIcon-20x20@3x.png -- 2.01kb -> 1.98kb (1.46%)
/packages/editor-app/src-tauri/icons/ios/AppIcon-29x29@3x.png -- 2.84kb -> 2.81kb (1.1%)
/packages/editor-app/src-tauri/icons/ios/AppIcon-29x29@2x-1.png -- 1.91kb -> 1.89kb (0.82%)
/packages/editor-app/src-tauri/icons/ios/AppIcon-29x29@2x.png -- 1.91kb -> 1.89kb (0.82%)
Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>
Co-authored-by: ImgBotApp <ImgBotHelp@gmail.com>
Co-authored-by: YHH <359807859@qq.com>
|
2025-12-01 23:34:47 +08:00 |
|