我们用来做sprite 的图片,通常会留有很多空白的地方,我们在画完了sprite之后,这些地方很可能就没有什么作用了。如果想避免这些资源上的浪费,我们可以把各个sprite做成图集,把图片上的空间尽量利用得充实一点。这时候,我们就需要一个制作图集的工具。
首先,Unity默认是在编辑器环境下不打开图集打包工具的,只有在Build的时候才会执行自动打包图集。Edit – Project Setting – Editor.既然这个功能是这样自动化,那为什么一开始是禁用状态,需要我们手动去editor setting里面设置打开呢?
原因是这个功能在unity打开工程的时候会先花一些时间运算图集,如果你需要计算的sprite很多,那么打开就会慢一些。计算好的图集会放在缓存文件夹Project\Library\AtlasCache里面,如果把这里的内容删掉,那么unity将会再次运算图集。
没有设置 Packing Tag,那Unity应该不知道怎么去打包图集.所以要把你要打包的图片.设置packingtag放在Resources中的图片,Unity不会打包到图集中。
2D游戏中的游戏物体,实际上是对图片的处理。把图片的格式转换成可以直接用在2D游戏中的格式,转换后的图片称为Sprite(精灵),为了提高性能,2D游戏开发时,美工会将不同的图片拼成一张大图,在引擎中会把这张大图中的某一部分读出来作为Sprite显示在屏幕中。
1.第一种方法:将美工制作好的包含多个小纹理图片的大纹理图片,导入到Unity中进行格式转换,然后使用SpriteEditor工具将大图分割成若干个Sprite使用,具体 *** 作流程如下:
(1)导入一张图片到Unity中,如图:这里是将多个所用到的2D精灵放置在一张图片中:
(2)将Texture Type设置成Sprite(2D and UI),Sprite Mode设置成Multiple,可以将大图分割为几个小图:
2.第二种方法:直接将原始图片导入到Unity中,使用Unity提供的SpritePacker工具将导入的图片打包,再从打包后的图片读取Sprite。
(1)SpritePacker打包精灵
Edit ->ProjectSetting ->Editor中SpritePacker默认是Disabled,需设置为AlwaysEnabled(LegacySpritePacker):
EnabledForBuilds:只有在到处游戏时使用。
(2)选中要打包的精灵,设置Packing Tag,点击Apply,相同的PackingTag值得精灵会打包到一个包里:
图片导入 设置等 :
常用的格式png jpg
将图片 textureType 设置为Sprite
将单个图片设置为 SpriteMode 设置为Single
将包含多个小图的一张大图 SpriteMode 设置为Multiple,在SpriteEditor中将素材进行切割,得到小的图片资源
PackingTag 进行精灵打包,减少资源大小,减少加载次数
GenerateMipMap (3D图片使用)牺牲CPU优化GPU,图片(大小)占用的内存增加33%左右,保存原图片的各种缩小图,在距离较远时,使用小图,来减少GPU的负担
Read/Write Enable 是否需要改图片
精灵动画 通过将多个精灵一起拖入Hierarchy进行创建精灵动画
SpriteRender :
OrderInLayer来控制渲染层级,数大的渲染在前面.
注意:在定项目之前定一个主分辨率
2D碰撞 条件和3D碰撞一样
给地形添加EdgeCollider地形碰撞
给玩家添加Rigidbody2D ,FreezeRotation -Z
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)