赞
踩
目录
2、Include Build: 勾选时运行游戏时自动加载入内存中,否则需要手动加载(使用到的时候才会加载!)
3、Allow Rotation:允许图集的图片旋转,勾选后Unity会寻找最好姿势放置在图集内(这样就能让图集容下更多的图片,但是一般我们不勾选,因为这个旋转会影响到实际显示。)
5、Padding:图集中一行或一列最大图片个数,有2、4、8选项
7、Generate Mip Maps: 消耗更多的内存带来更好的表现,主要针对高配机时可开启,手游一般都可能不开启。
8、sRGB:使用gamma空间存储rgb,使用后会图片整体变暗;具体效果不清楚,默认不选
11、Objects for Packing: 打入图集的文件,可放入Texture2D、Sprite、文件夹放入文件夹时会将文件夹下的所有Texture2D、Sprite放入图集
12、Pack Preview按钮:点击后会在预览界面显示出图集的具体数值,如图集的内部表现、空间大小、尺寸、使用的压缩格式
官方文档说明:https://docs.unity3d.com/2017.4/Documentation/ScriptReference/U2D.SpriteAtlas.html
手动加载方法如下:
- 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包采用异步加载,如果默认是自动的话就可能是同步加载。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。