Unity2d引入新功能SpriteAtlas,Sprite新的图集方式
孙广东 2017.8.3
http://blog.****.NET/u010019717
在Unity 2017.1.0f3中引入了 SpriteAtlas
官方文档:
之前针对UGUI打包图集, 有 : SpritePacker
现在的SpriteAtlas要比 SpritePacker容易理解。
在使用 之前,之后看 SetPass的 变化!!!!!
创建 SpriteAtlas
首先,创建一个 SpriteAtlas 文件(Asset -> Create -> Sprite Atlas)。
可以指定图集中包含的内容,您还可以查看按的包预览包结果。
比如文件夹 , 文件都可以。而且是Sprite Sheet也是可以的,但是内容会在新的Atlas中重新排序。
要想让贴图进入图集中, 必须是 Sprite才行。
还有要开启这个功能: 这两个只能开启一个么? 说明这是新旧两种方式了, 只能选择一种
SpriteAtlas 设置
类型
Master 基本上没有问题。
另一种类型,是 Variant 类型。 感觉是复用之前的
现在让我们实际使用生成的 SpriteAtlas
使用 Resources.Load 加载图集:
// 需要新 的命名空间 using UnityEngine.U2D;
SpriteAtlas weaponAtlas = Resources.Load<SpriteAtlas>("WeaponAtlas");
然后得到指定的Sprite: 参数是 名称
Sprite sprite = weaponAtlas.GetSprite("axe2");
当然了也是可以 在脚本中直接引用:
[SerializeField]private SpriteAtlas _weaponAtlas = null;
可以得到图集中的所有Sprite:
//WeaponAtlas中精灵个数
int spriteCount = _weaponAtlas.spriteCount;
//sprite
Sprite[] spriteArray = new Sprite[spriteCount];
//spriteArray得到数组
_weaponAtlas.GetSprites(spriteArray);
或者: