通过批处理脚本设置图集的一些参数
一下代码可以自动找到相关的目录下的图集,根据统一的参数配置一键设置好图集参数,并且立即打包所有图集,开发中比较实用的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| public class AtlasCompressEditor { [MenuItem("Package/Atlas/图集压缩_设置矫正", priority = 1003)] public static void AltasCompress() { string[] guids = AssetDatabase.FindAssets("t:spriteatlas",new[] {"Assets/Art/UIAtlas"}); foreach (var id in guids) { var p = AssetDatabase.GUIDToAssetPath(id); SpriteAtlas atlas = AssetDatabase.LoadAssetAtPath(p, typeof(SpriteAtlas)) as SpriteAtlas; atlas.SetIncludeInBuild(true);
var packSetting = atlas.GetPackingSettings(); packSetting.blockOffset = 1; packSetting.enableRotation = false; packSetting.padding = 2; packSetting.enableTightPacking = false; atlas.SetPackingSettings(packSetting);
var texture_setting = atlas.GetTextureSettings(); texture_setting.generateMipMaps = false; texture_setting.filterMode = FilterMode.Bilinear; atlas.SetTextureSettings(texture_setting);
TextureImporterPlatformSettings android_setting = new TextureImporterPlatformSettings(); android_setting.name = BuildPipeline.GetBuildTargetName(BuildTarget.Android); android_setting.overridden = true; android_setting.textureCompression = TextureImporterCompression.Compressed; android_setting.format = TextureImporterFormat.ASTC_6x6;
TextureImporterPlatformSettings phone_setting = new TextureImporterPlatformSettings(); phone_setting.name = BuildPipeline.GetBuildTargetName(BuildTarget.iOS); phone_setting.overridden = true; phone_setting.textureCompression = TextureImporterCompression.Compressed; phone_setting.format = TextureImporterFormat.ASTC_6x6; atlas.SetPlatformSettings(android_setting); atlas.SetPlatformSettings(phone_setting);
AssetDatabase.SaveAssetIfDirty(atlas); } SpriteAtlasUtility.PackAllAtlases(EditorUserBuildSettings.activeBuildTarget); } }
|
解释和要点
1、AssetDatabase.FindAssets中可以增加对应的图集目录,代码会依次设置
2、SpriteAtlas.SetPackingSettings 设置图片资源的相关格式,图集也是一张图片可以使用图片压缩格式
3、SpriteAtlasUtility.PackAllAtlases 打包所有的图集
4、Sprite Atlas 版本 1 和 Sprite Atlas 版本 2 不兼容
5、本代码只能用于spriteatlasv1版本的图集设置,关于新版本的v2图集目前官方不支持通过脚本编辑 Sprite Atlas 版本 2,至此2024/07还未提供。
博主也是查了好多网上的资料才发现这点的,不是很明显,到目前为止博主还是建议使用Sprite Atlas 版本 1。希望能帮助到各位开发者。官网截图如下: