mirror of
https://github.com/smallmain/cocos-enhance-kit.git
synced 2025-12-19 22:39:29 +00:00
名称修改为 enhance-kit
This commit is contained in:
@@ -3,7 +3,7 @@ import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
|
||||
|
||||
# 动态合图
|
||||
|
||||
动态合图是一个非常好的合批手段,但是在之前引擎实现的比较简陋,所以服务包重构了动态合图系统,在原有功能基础上增加了许多重要特性。
|
||||
动态合图是一个非常好的合批手段,但是在之前引擎实现的比较简陋,所以增强包重构了动态合图系统,在原有功能基础上增加了许多重要特性。
|
||||
|
||||
比如支持复用废弃碎图空间,优化了图集装箱算法,所有图集作为一个整体进行管理等等,你可以阅读下面的文档了解详情:
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ description: "随心所欲地控制动态合图的使用。"
|
||||
|
||||
# 手动管理合图
|
||||
|
||||
有时候你可能需要更细致地去控制哪些纹理加入动态图集,考虑到这一点,服务包在保留原来所有接口的基础上完全开放了动态图集相关的所有接口。
|
||||
有时候你可能需要更细致地去控制哪些纹理加入动态图集,考虑到这一点,增强包在保留原来所有接口的基础上完全开放了动态图集相关的所有接口。
|
||||
|
||||
---
|
||||
## 访问图集数组与已用空间集合
|
||||
@@ -31,7 +31,7 @@ cc.dynamicAtlasManager.rects
|
||||
cc.dynamicAtlasManager.insertSpriteFrame(spriteFrame);
|
||||
```
|
||||
|
||||
可以将 SpriteFrame 所使用的纹理添加到动态图集,这是引擎原有接口,但服务包对其做了一点修改,这个接口不再会检查纹理的 `packable` 属性,也就是变成了一个强制添加的接口。
|
||||
可以将 SpriteFrame 所使用的纹理添加到动态图集,这是引擎原有接口,但增强包对其做了一点修改,这个接口不再会检查纹理的 `packable` 属性,也就是变成了一个强制添加的接口。
|
||||
|
||||
这样设计的原因是你可以将所有纹理的 `packable` 都设为 `false`,或者直接将 `maxFrameSize` 设为 `0`,然后完全手动地进行动态合图。
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ description: "了解如何手动进行多纹理合批。"
|
||||
|
||||
但是这种完全手动的方式实现起来比较麻烦,比如你需要使用一个纹理时,还得找到该纹理所在的材质并设置到渲染组件上。
|
||||
|
||||
为了能更方便地进行多纹理合批,服务包封装了一个自动切换多纹理材质的机制与多纹理合批管理类 `cc.sp.MultiBatcher`。
|
||||
为了能更方便地进行多纹理合批,增强包封装了一个自动切换多纹理材质的机制与多纹理合批管理类 `cc.sp.MultiBatcher`。
|
||||
|
||||
动态图集与字符图集使用的是一个全局的多纹理合批管理器实例,可以通过 `cc.sp.multiBatcher` 访问。
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ toc_max_heading_level: 5
|
||||
|
||||
# 多纹理材质
|
||||
|
||||
服务包在引擎内置了可以直接使用的多纹理 Effect 着色器资源,并且你可以直接使用多纹理材质而不需要编写任何代码。
|
||||
增强包在引擎内置了可以直接使用的多纹理 Effect 着色器资源,并且你可以直接使用多纹理材质而不需要编写任何代码。
|
||||
|
||||
---
|
||||
## 创建多纹理材质
|
||||
@@ -53,7 +53,7 @@ Spine 组件使用多纹理材质时会强制勾选 `enableBatch`,因为不开
|
||||
|
||||
除了直接在内置着色器的基础上修改之外,任何着色器中如果存在一个宏 `USE_MULTI_TEXTURE = true`,则会被认为是多纹理材质。
|
||||
|
||||
[演示项目](https://smallmain.gitee.io/cocos-service-pack/demo/v1.0.0/web-desktop/index.html) 中有自定义材质的示范代码。
|
||||
[演示项目](https://smallmain.gitee.io/cocos-enhance-kit/demo/v1.0.0/web-desktop/index.html) 中有自定义材质的示范代码。
|
||||
|
||||
:::tip 提示
|
||||
|
||||
@@ -70,7 +70,7 @@ Spine 组件使用多纹理材质时会强制勾选 `enableBatch`,因为不开
|
||||
---
|
||||
## 通过代码设置纹理插槽
|
||||
|
||||
每个多纹理材质都对应着一个多纹理材质管理器,这是服务包新增的一个工具类,其主要用处是便捷、高性能地管理多纹理材质上面的纹理插槽。
|
||||
每个多纹理材质都对应着一个多纹理材质管理器,这是增强包新增的一个工具类,其主要用处是便捷、高性能地管理多纹理材质上面的纹理插槽。
|
||||
|
||||
通过 `material.getMultiHandler()` 可以获取到管理器实例,请使用这个实例来操作多纹理材质的纹理插槽。
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
|
||||
|
||||
# Spine
|
||||
|
||||
服务包解决了 Spine 在 Cocos Creator 中的三大痛点:
|
||||
增强包解决了 Spine 在 Cocos Creator 中的三大痛点:
|
||||
|
||||
- 不参与动态合图
|
||||
- 无法与其它组件合批
|
||||
|
||||
@@ -79,7 +79,7 @@ a.getRegion(slotName, attachmentName);
|
||||
|
||||
如果你只想替换其中一个组件,那么就可以克隆这个 SkeletonData 让每个组件都使用不同的 SkeletonData 实例进行渲染。
|
||||
|
||||
服务包提供了一个克隆数据的接口来实现这个需求:
|
||||
增强包提供了一个克隆数据的接口来实现这个需求:
|
||||
|
||||
```js
|
||||
const clonedSkeletonData = skeletonData.clone();
|
||||
@@ -88,4 +88,4 @@ const clonedSkeletonData = skeletonData.clone();
|
||||
使用以上代码克隆 SkeletonData 后再进行换装,赋值给 Spine 组件,那么替换操作就只会对这个 Spine 组件生效。
|
||||
|
||||
---
|
||||
以上所有用法你可以在 [演示项目](https://smallmain.gitee.io/cocos-service-pack/demo/v1.0.0/web-desktop/index.html) 中找到示范代码。
|
||||
以上所有用法你可以在 [演示项目](https://smallmain.gitee.io/cocos-enhance-kit/demo/v1.0.0/web-desktop/index.html) 中找到示范代码。
|
||||
|
||||
@@ -69,13 +69,13 @@ class Example extends cc.Component {
|
||||
|
||||
一般情况下,代码位置 2 是当用户脚本被加载时就会被执行,而代码位置 1 可能需要等到引擎首场景加载后的某个时间执行。
|
||||
|
||||
服务包会自动调整动态图集的最大数量,这个调整的时机是在代码位置 2 之后的,所以比如你的项目对 Char 缓存模式使用量比较大时,想尝试将动态图集最大数量调整为 6,自动合批的字符图集数量调整为 2,那么你只需要在代码位置 2 修改字符图集自动多纹理合批的数量:
|
||||
增强包会自动调整动态图集的最大数量,这个调整的时机是在代码位置 2 之后的,所以比如你的项目对 Char 缓存模式使用量比较大时,想尝试将动态图集最大数量调整为 6,自动合批的字符图集数量调整为 2,那么你只需要在代码位置 2 修改字符图集自动多纹理合批的数量:
|
||||
|
||||
```js
|
||||
cc.sp.charAtlasAutoBatchCount = 2;
|
||||
```
|
||||
|
||||
之后服务包会自动将动态图集的最大数量调整为 `8 - 2`,即 6。
|
||||
之后增强包会自动将动态图集的最大数量调整为 `8 - 2`,即 6。
|
||||
|
||||
这个自动调整的时机并不意味着你在代码位置 2 修改动态图集的最大数量是无效的,因为一开始动态图集的最大数量为 `-1`,你打印一下可以看到
|
||||
|
||||
@@ -83,7 +83,7 @@ cc.sp.charAtlasAutoBatchCount = 2;
|
||||
console.log(cc.dynamicAtlasManager.maxAtlasCount); // -1
|
||||
```
|
||||
|
||||
如果你在代码位置 2 修改了动态图集的最大数量,服务包就不会调整该值了。
|
||||
如果你在代码位置 2 修改了动态图集的最大数量,增强包就不会调整该值了。
|
||||
|
||||
```js
|
||||
cc.dynamicAtlasManager.maxAtlasCount = 5;
|
||||
@@ -100,7 +100,7 @@ cc.sp.charAtlasAutoBatchCount = 3;
|
||||
|
||||
比如上面这个设置,这会使得引擎需要用 2 个材质进行渲染,但是可用的动态图集扩充到了 13 张,Char 能自动合批的图集数量扩充到了 3 张,对于某些项目来说可能并不是一件坏事。
|
||||
|
||||
服务包使用这个 “7 + 1” 的默认值有以下几点原因:
|
||||
增强包使用这个 “7 + 1” 的默认值有以下几点原因:
|
||||
|
||||
- 引擎原本就只有 1 张 Char 字符图集
|
||||
- 大多数项目使用 1 张 Char 字符图集是足够的
|
||||
|
||||
@@ -3,6 +3,6 @@ import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
|
||||
|
||||
# 文本渲染
|
||||
|
||||
文本渲染一般是游戏性能优化需要重点关注的地方,并且其显示效果也非常重要,所以服务包提供了以下新特性:
|
||||
文本渲染一般是游戏性能优化需要重点关注的地方,并且其显示效果也非常重要,所以增强包提供了以下新特性:
|
||||
|
||||
<DocCardList items={useCurrentSidebarCategory().items}/>
|
||||
|
||||
@@ -3,14 +3,14 @@ import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
|
||||
|
||||
# 使用指南
|
||||
|
||||
在 [入门教程](../start-guide/start-guide-intro.mdx) 里,你应该对如何更好地使用安装服务包后的引擎已经有所了解了。
|
||||
在 [入门教程](../start-guide/start-guide-intro.mdx) 里,你应该对如何更好地使用安装增强包后的引擎已经有所了解了。
|
||||
|
||||
通过该指南你可以更详细地了解服务包为引擎添加的每个特性与改动:
|
||||
通过该指南你可以更详细地了解增强包为引擎添加的每个特性与改动:
|
||||
|
||||
<DocCardList items={useCurrentSidebarCategory().items}/>
|
||||
|
||||
:::caution 注意
|
||||
|
||||
在几乎所有平台上引擎都是使用 WebGL 渲染模式,所以服务包的大部分特性都未支持引擎的 Canvas 渲染模式,部分特性在 3D 节点下不生效。
|
||||
在几乎所有平台上引擎都是使用 WebGL 渲染模式,所以增强包的大部分特性都未支持引擎的 Canvas 渲染模式,部分特性在 3D 节点下不生效。
|
||||
|
||||
:::
|
||||
|
||||
Reference in New Issue
Block a user