【HTML5】Egret笔记(四):纹理集
2020-10-11
一、纹理集批处理
Egret官方的TextureMerger -1.5.2版本后支持简单命令行调用
命令格式:-p [目录] […] -o [json输出路径] -e [文件筛选正则表达式]
Windows环境:
支持批处理,分享下笔者自己的bat文件。
@echo off
::源文件目录,存放散图
set origin_path=E:\origin
::目标文件目录,打包后的整图
set dest_path=E:\dest\
::打包工具路径
set texture_merger=D:\Program" "Files\Egret\TextureMerger\TextureMerger.exe
echo ..........Start...........
for /R %origin_path% %%s in (.) do (
echo %%~ns
start /wait %texture_merger% -p %%s -o %dest_path%%%~ns_sheet.json
)
echo ...........Done...........
pause
说明:读者只需将origin_path、dest_path、texture_merger(见注释)替换为自己的本地目录,保存为ui.bat,双击执行即可。
Mac环境:
安装工具后,需要自行给其起个别名:
$ echo “alias TextureMerger=’/Applications/TextureMerger.app/Contents/MacOS/TextureMerger'” >> ~/.bash_profile;
然后即可终端通过命令打包,Mac下不支持批处理,只能一个个打包。
二、纹理集基本调用机制
一个完整的纹理集配置:
{
"url": "assets/ui/number_sheet.json",
"type": "sheet",
"name": "number_sheet_json",
"subkeys": "numberB1,numberB0"
}
其中‘subkeys’键并不是必需的。
egret在解析资源配置config.json时,遇到[type=‘sheet’]的资源时,会自动检测是否包含[subkeys],如果有,则将其二级键名加入一级键名集合[keyMap]中,即[RES.configInstance.keyMap]。
如果sheet类型资源不包含[subkeys],在使用之前需要自行手动加载,通过SheetAnalyzer解析器来获取。
尤其是使用eui模块的项目,最好包含[subkeys],系统会自己异步加载资源。
官方的工具,合图和导入res.json,都默认有[subkeys]。自己用批处理生成res.json时,一定得注意此环节。