660 Commits

Author SHA1 Message Date
dgflash
2c0b5cfa6e 更新版本号 2026-05-04 16:20:04 +08:00
dgflash
3c3b7f4f64 refactor(gui): 提取屏幕适配逻辑到独立 ScreenAdapter 类
- 新增 ScreenAdapter 类,负责屏幕分辨率适配和安全区域适配
- LayerManager 移除 windowAspectRatio/designAspectRatio/mobileSafeArea 属性
- LayerManager 移除 initScreenAdapter() 方法
- LayerManager 添加 screenAdapter 属性,通过组合方式使用

BREAKING CHANGE: 如需访问屏幕适配属性,改为通过 oops.gui.adapter
2026-05-03 21:18:01 +08:00
dgflash
12aedf1491 优化提示 2026-04-29 22:44:22 +08:00
dgflash
d333ff5371 feat(gui): 添加界面缓存查询方法 hasCache
修改内容:
1. LayerUI.ts: 添加 hasCache(prefabPath: string) 方法
   - 检查 ui_cache 中是否存在指定预制件路径的界面

2. LayerManager.ts: 添加 isCached(uiid: Uiid) 方法
   - 对外提供查询界面是否在缓存中的 API
   - 与 has() 方法区分:has() 检查显示中,isCached() 检查缓存中

使用示例:
  // 检查界面是否正在显示
  oops.gui.has(UIID.Loading);      // false(已从舞台移除)

  // 检查界面是否在缓存中(destroy: false 时)
  oops.gui.hasCache(UIID.Loading); // true(在缓存中)

影响范围:
- 仅新增方法,不影响现有功能
- 向后兼容
2026-04-26 23:13:00 +08:00
dgflash
70930f8037 微信小游戏真机调试环境兼容 2026-04-22 09:31:52 +08:00
dgflash
b64c03ede8 强类型事件支持传空参数 2026-04-21 12:20:00 +08:00
dgflash
e274dbb062 修复 loading 转圈因 clearTimeout 提前执行导致无法关闭的 bug,完善状态管理与关闭逻辑 2026-04-10 22:13:45 +08:00
dgflash
0746948455 fix(GameComponent): 修复资源加载相关的安全问题和内存泄漏
## 问题修复
- setButton: 修复组件名不匹配格式时正则匹配崩溃
- createPrefabNode: 修复预制体加载失败时崩溃,返回类型改为 Promise<Node | null>
- load: 修复资源加载失败时引用计数未移除
- loadAny: 修复加载失败时引用计数未移除
- loadDir: 修复加载失败时引用计数未移除
- playEffect: 修复返回值 null! 非空断言,改为 Promise<AudioEffect | null>
- setSprite: 优化失败处理逻辑,返回 boolean

## 新增功能
- loadDirAsync: Promise 模式的文件夹资源加载
- removePathFromRecord: 私有方法,用于加载失败时回滚引用计数

## 代码优化
- loadAny/loadDir: 使用强类型回调参数
- loadAny: 使用对象数组替代字符串拼接解析
2026-04-05 12:22:28 +08:00
dgflash
5a43c3d08e 优化强类型事件类型 2026-04-05 11:15:01 +08:00
dgflash
b32c550b15 1.规范化框架业务模板的提示信息
2.废弃GameCollision.ts
2026-04-05 11:05:58 +08:00
dgflash
9a4fd82dcf CCBusiness支持事件系统全部功能 2026-04-05 10:52:32 +08:00
dgflash
0e569dc31e 统一框架中d.ts文件风格 2026-04-05 10:26:24 +08:00
dgflash
4d9d2eac96 优化强类型事件类型 2026-04-05 10:19:24 +08:00
dgflash
79d5ee8637 优化强类型事件类型 2026-04-05 10:00:53 +08:00
dgflash
421c7db39e 优化聚焦强类型事件方法命名规范调整,核心改动为:废弃原有基于重载区分事件方法的实现方式,统一采用语义化、独立化的方法命名规则。适配 AI 自动生成代码的理解与解析逻辑 2026-04-05 09:19:31 +08:00
dgflash
da020de1ff 框架工具控制Cocos Creator 自动打开预制绑定脚本 2026-04-04 22:37:24 +08:00
dgflash
d2c68fbab5 fix(gui): 修复 onBeforeRemove 回调不触发的问题
问题原因:
在 LayerUI.remove() 方法中,state.valid 被提前设置为 false,
导致 LayerUIElement.remove() 中判断 state.valid 时条件不成立,
从而跳过了 onBeforeRemove 回调的触发。

修复方案:
将 state.valid = false 的赋值操作移动到 LayerUIElement.remove()
调用之后执行,确保回调能正常触发。

影响范围:
- 修复通过 oops.gui.remove() 关闭界面时 onBeforeRemove 回调不执行的问题
- 不影响界面缓存和异步加载的僵尸节点防护逻辑
2026-04-01 22:38:10 +08:00
dgflash
99fd688924 倒计时标签(组合方式实现,不继承 Label),因为在模拟器中下会导致标签文本渲染不出来 2026-03-24 09:14:31 +08:00
dgflash
e06697f4a8 1. 修复常驻 PopUp(如 Main)存在时,最后一个 mask:true 弹窗关闭后,共享 mask 不再残留
2.BlockInputEvents 与 mask 生命周期同步管理
3.代码可维护性提升,职责分离更清晰
2026-03-21 09:35:02 +08:00
dgflash
d43f1de76c ECS 对象池优化 2026-03-08 17:27:27 +08:00
dgflash
0b808f6ab1 优化CCEntity的addPrefab、addUi异步操作时,对象被释放时空对象问题,提高框架稳定性 2026-03-08 13:59:24 +08:00
dgflash
605e0b8d76 CCView 使用MVVM功能时性能优化 2026-03-08 13:42:41 +08:00
dgflash
b7aa3b6d2a Mvvm ViewModel 生命周期自动管理功能,彻底解决了临时tag的命名冲突和内存泄漏问题 2026-03-08 13:27:48 +08:00
dgflash
5776b5b7b8 Mvvm VMBase组件路径解析的性能优化 2026-03-08 13:16:41 +08:00
dgflash
2c95d13b9e 1. 明确文档说明isRecycle=false的使用场景
2. 提供清理缓存的API
2026-03-08 12:46:52 +08:00
dgflash
9d65c31016 MVVM里JsonOb深度监听的性能优化
1. 防止重复观察同一对象
2.优化数组操作(只监听新增元素)
3.支持冻结数据(不监听静态配置)
4.支持批量更新(减少回调次数)
5.支持自定义深度限制
6.更安全的内存管理
7.API 完全兼容原始版本,可零改动升级
2026-03-08 12:09:10 +08:00
dgflash
2350b06c84 ECS 缓存管理优化 2026-03-08 11:49:53 +08:00
dgflash
47c4e935f9 删除框架中老版工具代码,和没有用到的第三方库,避免编辑器提示没有第三方库报错 2026-03-02 22:38:30 +08:00
dgflash
59cc70ef6d 修改MVCompsEdit类名为VMCompsEdit,统一风格 2026-03-02 12:58:15 +08:00
dgflash
648fbcbb1f 行为树框架添加数据配置功能的支持,为后续可视化界面开发做准备 2026-03-01 12:06:19 +08:00
dgflash
2efe3a1982 优化 ECS 和 MVVM 相关代码的性能与可读性
- ECS.ts: 简化实体创建的类型转换,修复实体复用时的 isValid 标记逻辑
- ECSEntity.ts: 添加辅助方法注释,优化组件属性访问
- VMBase.ts: 优化路径解析逻辑
- CCView.ts: 重构 MVVM 路径替换和 VM 组件获取逻辑,提升性能
- GamePrefabDecorator.ts: 优化装饰器中的类型转换

所有变更均为内部实现优化,不影响对外 API
2026-02-26 22:52:49 +08:00
dgflash
13cfa37bf3 框架配置数据支持强类型 2026-02-24 21:50:47 +08:00
dgflash
500f7dcb1c . 2026-02-23 20:12:35 +08:00
dgflash
c5ddb8c100 优化框架中自定义 type 2026-02-23 17:41:50 +08:00
dgflash
aec1a6567f 1. 为 Gui.ts 添加完整类型注解
2.修复 CCBusiness 事件释放方法
3.提取 CCEntity 类型至统一模块,优化 addPrefab 方法
2026-02-23 11:53:30 +08:00
dgflash
2da486bd77 废弃老版图片压缩工具,使用工具集插件中的代替 2026-02-22 22:47:27 +08:00
dgflash
fca918c47c CCEntity.addUi与CCEntity.removeUi支持CCView与GameComponent类型的界面打开与移除 2026-02-22 21:24:44 +08:00
dgflash
a226450564 业务层组件自动绑定到实体属性上,优化开发体验 2026-02-22 18:37:27 +08:00
dgflash
e206e43268 删除没用到的资源 2026-02-21 22:17:01 +08:00
dgflash
d9bf916225 修改版本号信息 2026-02-21 13:06:46 +08:00
dgflash
01905f183e 优化显示对象模块的自动化内存管理逻辑 2026-02-20 17:37:27 +08:00
dgflash
e57e26b1ee 优化 2026-02-20 17:28:42 +08:00
dgflash
7295fc6a2a 全局事件支持强类型事件参数 2026-02-20 17:08:36 +08:00
dgflash
87d9c6587e . 2026-02-20 16:19:44 +08:00
dgflash
7318e824cb 事件模块分这个文件管理代码 2026-02-20 15:22:53 +08:00
dgflash
eaaa4afc28 优化日志系统和事件管理器
主要更改:

1. Logger.ts 日志系统优化
   - 新增 disable() 方法,支持完全禁用日志输出
   - 重构 start()/end() 计时方法,使用 Map 存储计时数据,替代原生 console.time/timeEnd
   - 优化 end() 方法,添加彩色输出和错误提示
   - 简化 print() 方法,移除复杂的堆栈追踪逻辑
   - 优化数组参数打印,支持展开显示
   - 统一字符串引号风格(单引号改为双引号)
   - 移除未使用的 log 导入

2. MessageManager.ts 事件管理器优化
   - 优化对象池回收策略,当池满时删除最老的对象而非丢弃新对象
   - 确保对象始终被回收,避免内存浪费
   - 修正注释格式,统一代码风格

性能提升:
- 减少日志系统的性能开销
- 改进对象池管理效率
- 优化内存使用
2026-02-20 13:32:50 +08:00
dgflash
d7f586de2f 修复UI异步加载未完成时移除导致的空指针崩溃 2026-02-07 16:25:46 +08:00
dgflash
41380f5703 多语言不使用TTF字段时,屏蔽因找不到资源报错问题 2026-02-07 16:15:48 +08:00
dgflash
e6d3156168 废弃多语言对配置表支持的功能 2026-02-07 15:49:32 +08:00
dgflash
88ea999ed0 废弃工具中与版本不匹配的工具,后续使用VSCode插件集成所有工具 2026-02-06 22:22:34 +08:00