2022-06-13 13:51:01 +00:00
|
|
|
|
# Cocos Service Pack Demo
|
|
|
|
|
|
|
|
|
|
这是对服务包所有特性做展示的 Cocos Creator 演示项目。
|
|
|
|
|
|
|
|
|
|
## 如何运行
|
|
|
|
|
|
|
|
|
|
1. 将项目克隆下来之后,根据文档中的 [安装指南](https://smallmain.github.io/cocos-service-pack/docs/installation-guide/installation-intro) 安装服务包。
|
|
|
|
|
|
|
|
|
|
2. 重启编辑器后运行项目的 `main.fire` 场景。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Cocos Creator SP v2.4.x
|
|
|
|
|
|
|
|
|
|
// 提供内置的多纹理材质(8、16 纹理插槽),并根据设备使用不同的材质
|
|
|
|
|
// 扩展 Sprite、Label、RichText、MotionSteak、Spine 组件原生支持多纹理材质
|
|
|
|
|
// 新增多纹理合批管理器:每个纹理都会对应一个材质,当纹理在渲染组件中使用时,会自动切换至对应的材质,支持控制全局默认是否自动切换,单个组件是否自动切换
|
|
|
|
|
// 重构动态合图:在原有功能的基础上,支持:1.完全开放所有接口以手动规划图集 2.增加全局默认是否参与动态合图的开关,单个组件是否参与的开关 3.增加在场景切换时是否清空所有图集的开关(原来是必定清空) 4.支持自动加入多纹理合批 5.自动根据设备支持的最大多纹理数量调整最大图集数量 6.优化装箱算法(Guillotine)7.支持复用被删除的空间 8.所有子图集作为一个整体进行管理(不会出现一张纹理被加入到两张图集的问题)9.修复动态图集一个内存泄漏问题
|
|
|
|
|
// 扩展 RichText:支持自定义材质
|
|
|
|
|
// 扩展 Spine:支持使用 SpriteFrame 换装
|
|
|
|
|
// 扩展 Label:支持高 DPI 文本渲染
|
|
|
|
|
// 扩展 Label:BITMAP 模式会复用同样式同文本的纹理,CHAR 模式改为使用多个图集,但是支持自动加入多纹理合批,这样就能与动态图集一起合批(增加配置,默认情况下动态图集最高8-1张,Char 图集为 1 张(无论如何设置,在装不完的情况下,因为需要正常渲染,都会最高使用 8 张图集,但是只有设置的数量才会加入多纹理合批,并且会创建一个专属材质,如果该材质无法完成渲染,会使用专属材质,或者可以仿照 spine flush buffer)
|
|
|
|
|
// 扩展 Spine:支持自动切换材质与动态图集
|
|
|
|
|
|
2022-06-15 10:56:22 +00:00
|
|
|
|
// 在编辑器中,Char 的显示有时候会出现异常
|
|
|
|
|
// 提醒调整是否参与动态图集,需要 setVertsDirty
|
2022-06-13 13:51:01 +00:00
|
|
|
|
// 提醒 cc.SkeletonData.createSpriteFrame ,如果 region 的旋转角度不是 270 或 0 不能完美转换,但不影响自动合图
|
|
|
|
|
// Spine 需要更多测试!!!SkeletonData 克隆会有 ref 问题吗?
|
|
|
|
|
|
|
|
|
|
// 注意:因 MotionSteak 直接使用 texture 而不是 spriteFrame,所以不支持动态图集
|
|
|
|
|
// 注意:Spine 使用多纹理材质时只支持使用 REALTIME 模式,并且会强制关闭 useTint 与开启 enableBatch
|
|
|
|
|
// 注意:序列帧动画的性能下降(具体多少待测试)
|
|
|
|
|
|
|
|
|
|
// 之后:
|
|
|
|
|
// 查找所有 TODO
|
|
|
|
|
// 插件适配 Windows
|
|
|
|
|
// 演示项目
|
|
|
|
|
// 插件适配两个版本:最新版与 2.4.6 版本
|
|
|
|
|
// 适配原生平台
|
|
|
|
|
// 适配 Spine 缓存模式
|
|
|
|
|
// 新增静态合批:在一个节点树的根节点挂上一个组件,该组件会快照这个节点树并显示为一张图片,然后只接管渲染,不影响其它逻辑
|