Unity编辑器拓展之二十二:基于TexturePacker的一键打图集工具

本文介绍了一款针对Unity NGUI的TexturePacker一键打图集工具,旨在提高美术资源处理效率。工具支持批量处理图片资源,自动生成所需的Material及Prefab文件,并提供了UIAtlas信息拷贝等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

博客迁移

个人博客站点,欢迎访问,www.jiingfengji.tech

Unity编辑器拓展之二十二:基于TexturePacker的一键打图集工具

NGUI使用TexturePacker打图集是一件频繁且费时的工作,只要美术稍一更新图片,就需要重新打图集,而且每次打图集的操作其实都是一样的重复劳动,基于此,开发工具批量打图集时很有必要的。

使用TexturePacker打图集,会输出两个文件,一个PNG合图,一个txt图集信息文件,而到Unity中使用UIAtlas,则需要一个Material材质文件和一个Prefab预制体文件,这两个文件也由工具生成。

鉴于项目不是从一开始就用该工具进行打图集工作的,因此这些文件的命名不具有统一的规范,因此使用一个配置文件来记录每个图集的输出文件信息。

这里写图片描述

Atlas.ini图集配置文件

该文件以CSV格式进行配置,共有5列,图片文件夹相对路径、PNG合图输出路径、txt图集信息文件输出路径、UIAtlasPrefab输出路径、Material材质输出路径,后面四个输出路径都是基于Unity工程的Assets目录。

命令行打图集

TexturePacker支持使用命令行打图集

$TexturePacker_PATH $imgDir --max-size 4096 --allow-free-size --format unity --size-constraints POT --shape-padding 2 --border-padding 2 --common-divisor-x 1 --common-divisor-y 1 --disable-rotation --algorithm MaxRects --opt RGBA8888 --scale 1 --scale-mode Smooth --smart-update --sheet $ASSETS_PATH$atlasPng --data $ASSETS_PATH$atlasData

详细命令行介绍请自行搜索相关文档

一键批量设置图片资源设置

PNG合图文件输出到Unity后,通过使用Unity提供的TextureImporter类和TextImporterPlatformSetting类进行图片设置

生成材质和Prefab问阿金并自动关联引用

材质使用的Shader是“Unlit/Transparent Colored”,mainTexture则为TexturePacker输出的合图,创建Prefab,并Add UIAtlas Component,给UIAtlas组件导入texture和txt图集信息文件

NGUIEditorTools.ImportTexture(uiAtlas.texture, false, false, !uiAtlas.premultipliedAlpha);
NGUIJson.LoadSpriteData(uiAtlas, atlasTextAsset);

###UIAtlas信息拷贝

创建图集后,有时需要拷贝另一个图集的border和padding信息,例如两个图集内容其实是一直的,只是皮肤颜色不一样(换肤图集),因此这两个图集的border和padding数据是一样的,提供工具进行数据拷贝。

这里写图片描述

清理Editor进度条

为避免Atlas.ini配置错误,导致打图集中断,而EditorUtility.DisplayProgressBar进度条无法清除,提供Editor进度条清理功能,菜单栏Tools->清理进度条

工程下载

GitHub地址:https://github.com/JingFengJi/CreateAtlas

以上知识分享,如有错误,欢迎指出,共同学习,共同进步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值