Unity2d引入新功能SpriteAtlas,Sprite新的图集方式

来源:互联网 发布:腾讯视频评论源码 编辑:程序博客网 时间:2024/06/04 01:28

孙广东  2017.8.3

http://blog.csdn.NET/u010019717



在Unity 2017.1.0f3中引入了 SpriteAtlas
官方文档: 
https://docs.unity3d.com/2017.1/Documentation/Manual/SpriteAtlas.html
https://docs.unity3d.com/2017.1/Documentation/ScriptReference/U2D.SpriteAtlas.html

之前针对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);

或者: 



原创粉丝点击