Deer_GF之SpriteAtlas与AssetBundle应用
最近做出包性能优化,发现框架出包后UI上引用的图片精灵丢失。于是就想对这个Unity UGUI SpriteAtlas一探究竟。
接下来我们开始吧。
目录
一、SpriteAtlas 介绍以及使用
在Unity中,SpriteAtlas是一种将多个Sprite资源集合在一起创建优化的贴图集合的工具。这个贴图集合可以被游戏引擎用于渲染多个Sprites,从而减少绘制调用的数量和总体性能开销。要在Unity中创建一个新的SpriteAtlas,您可以右键单击项目窗口,然后从上下文菜单中选择“Create > Sprite Atlas”。然后,您可以将Sprite资源拖放到SpriteAtlas编辑器窗口中,以将它们添加到Atlas中。
创建好SpriteAtlas后,您可以在游戏代码中引用它来加载和渲染Sprites。您可以使用Unity提供的SpriteAtlas API来做这些事情,其中包括像GetSprite()这样的函数来从Atlas检索特定的Sprite,以及GetSprites()函数来从Atlas检索所有Sprites。
二、SpriteAtlas 优点
Unity中使用SpriteAtlas有以下好处:1. 减少绘制调用次数:SpriteAtlas将多个Sprite合并成一个贴图集合,这样在渲染时只需要一次绘制调用即可,从而大大减少了绘制调用的数量。
2. 优化GPU资源:由于SpriteAtlas将多个Sprite合并成一个贴图集合,可以减少GPU对不同材质和纹理的切换和缓存开销,从而提高游戏性能。
3. 简化Sprite加载流程:使用SpriteAtlas API可以方便地从贴图集合中加载Sprites,而无需为每个Sprite单独加载材质等资源。
4. 节省内存:由于SpriteAtlas是一个贴图集合,它占用的内存比单独的Sprite要小得多。这对于需要处理大量Sprite的游戏场景非常重要。
5. 提高游戏性能:由于SpriteAtlas可以减少绘制调用次数、优化GPU资源、简化Sprite加载流程和节省内存,因此可以提高游戏性能,使游戏更顺畅。
总之,使用SpriteAtlas可以有效地提高游戏性能,特别是在处理大量Sprite的游戏场景中。
三、SpriteAtlas 构建assetbundle
1、在使用图集情况下需要先在Edit > Project Settings > Editor下Sprite Packer Mode选【Sprite AtlasV1 - Enabled For Builds】 或者 【Sprite AtlasV1 - Enabled For Builds】
2、把图集里的精灵图元打到assetbundle里。
3、生成的图集不能打到assetbundle,不能打到assetbundle,不能打到assetbundle!笔者因为一开始对Unity Ugui图集概念了解不清楚,造成了assetbundle出包资源图片不显示问题!
注意: UGUI的图集,无论新旧,在构建AssetBundle的时候,同一个图集内的所有图元都要放在同一个AssetBundle中,否则,如果同一个图集的图元被分散到多个AssetBundle中,那么每一个AssetBundle都会包含一份这个图集的Copy,最终的结果就是包体冗余、内存膨胀和加载耗时等问题。
4、笔者因为一开始对Unity Ugui图集概念了解不清楚,造成了assetbundle出包资源图片不显示问题!所以做了以下第四部分测试对比。敬请往下看
标签:Sprite,AssetBundle,Deer,GF,Unity,SpriteAtlas,assetbundle,图集 From: https://www.cnblogs.com/AlanDu/p/17253320.html