【Unity】SpriteAtlas功能讲解⽬录
SpriteAtlas创建⽅法
1、Type: Maskter母版 Variant变体
2、Include Build: 勾选时运⾏游戏时⾃动加载⼊内存中,否则需要⼿动加载(使⽤到的时候才会加载!)⼿动加载⽅法如下:
using UnityEngine;
using UnityEngine.U2D; //引⽤SpriteAtlas的命名空间!
冯昭峰public class MyTest : MonoBehaviour {
void Start () {
//SpriteAtlasManager.atlasRegistered //SpriteAtlas加载完成后调⽤
//当需要加载图集时调⽤,传⼊tag路径,action回调传⼊加载出来的SpriteAtlas即可完成了图集加载,之后会触发上⾯的⽅法        //如果勾选了Include Build属性,在启动游戏时⾃动进⾏这个操作...
SpriteAtlasManager.atlasRequested += (string tag, System.Action<SpriteAtlas> action) =>
{
Debug.Log("tag:" + tag); //tag是SpriteAtlas资源的⽂件名称
action(Resources.Load<SpriteAtlas>(tag));
};
SpriteAtlasManager.atlasRegistered += (SpriteAtlas spriteAtlas) =>
{
Debug.Log("Dosomething!" + spriteAtlas.name);
男孩学什么专业前景好Sprite sprite = spriteAtlas.GetSprite("AnimPic_0");
Debug.Log("从图集中获取到的Sprite:" + sprite.name);
};
}
探险家出装}
上图为加载失败的情况,在编辑器模式下依然是可以看到图⽚的,运⾏时如果图⽚依赖的图集没有被成功加载到内存,就这样了
请注意在图集中它的名字只是Texture的名称,Sprite的名字是AnimPic_0(所以如果出现加载不到图集图⽚的情况,那就是Sprite的名称不对)
为什么贴图和Sprite名称会不⼀样?⼀般来说是⼀样的,那是因为我进⼊了Sprite Editor修改了Sprite的Name(哈哈哈~)
运⾏时打印:
这种动态加载⽅法好处就是能控制加载,⽐如加载AB包采⽤异步加载,如果默认是⾃动的话就可能是同步加载。
3、Allow Rotation :允许图集的图⽚旋转,勾选后Unity 会寻最好姿势放置在图集内(这样就能让图集容下更多的图⽚,但是⼀般我们不勾选,因为这个旋转会影响到实际显⽰。)
4、Tight Packing: 勾选后使⽤精度更⾼的裁剪图集图⽚(Mesh 裁剪),否则是矩阵裁剪(图⽚是⼀块矩形图),如果不需要⾼精度裁剪就别勾,如果发现裁剪出的图⽚有显⽰不正确问题,那就可以勾选它了。
5、Padding :图集中⼀⾏或⼀列最⼤图⽚个数,有2、4、8选项
最美的岛屿6、Read/Write Enabled:图集图⽚读写权限
7、Generate Mip Maps: 消耗更多的内存带来更好的表现,主要针对⾼配机时可开启,⼿游⼀般都可能不开启。
梁龙睡过王菲8、sRGB:使⽤gamma空间存储rgb,使⽤后会图⽚整体变暗;具体效果不清楚,默认不选
9、Fitler Mode: Point(像素级)、Bilinear(渐变)、Trilinear(更⽜逼的)默认Bilinear(⼀般也是⽤它,除⾮你游戏是像素风、或者有更⾼的要求时选Trilinear)
10、压缩格式
11、Objects for Packing: 打⼊图集的⽂件,可放⼊Texture2D、Sprite、⽂件夹
放⼊⽂件夹时会将⽂件夹下的所有Texture2D、Sprite放⼊图集
玩两个少妇女邻居
12、Pack Preview按钮:点击后会在预览界⾯显⽰出图集的具体数值,如图集的内部表现、空间⼤⼩、尺⼨、使⽤的压缩格式