unity2d sprite sheet 和 sprite packer 有啥区别?

Posted

技术标签:

【中文标题】unity2d sprite sheet 和 sprite packer 有啥区别?【英文标题】:unity2d what the different between sprite sheet and sprite packer?unity2d sprite sheet 和 sprite packer 有什么区别? 【发布时间】:2014-10-12 01:49:51 【问题描述】:

我的意思是游戏运行时效率低下。

精灵表: 将多个文件放在一个纹理文件中,然后将其导入unity,我只导入一个纹理。

精灵包装器: 统一导入多个文件,然后使用精灵打包器将其打包到一个纹理中。

那么它们之间有什么区别呢?哪一个更适合精灵动画?

谢谢!

【问题讨论】:

【参考方案1】:

就帧速率而言,您几乎没有影响。但是在内存方面,您可能会看到效果,因为精灵打包器将能够更好地处理具有灵活大小的动画。

对于精灵表,我假设您的意思是由固定大小的单元格组成的图集。这种方法没有问题,除非您的动画大小变化很大,因此有必要增加整体单元大小以覆盖最大动画帧的区域。你最终会得到大量的“空”,从而浪费空间。这很糟糕,因为移动内存将是您的问题。

一般来说,精灵表适用于适合有效单元格大小的动画,例如动画角色:

使用统一精灵打包器,您不会遇到这个问题,因为它会将浪费的空白空间“打包”在一起并创建最佳图集,因此名称为“打包器”。

您可以在文档中看到:

爆炸(或无论它是什么)显然正在使用最佳空间。在精灵表中,您将不得不创建最大爆炸大小的单元格。

就编程的方便性而言,使用 sprite packer 您可能需要添加一些代码来校正原始 sprite 大小,因此动画将在“锚点”处顺利运行。使用精灵表,您可以通过固定单元格大小来避免这种情况。

【讨论】:

以上是关于unity2d sprite sheet 和 sprite packer 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

Unity2D 为啥sprite在scene中显示而game界面中没有?

用unity2D请问如何让粒子在sprite上面不被遮住

unity2D场景sprite无法受灯光影响怎么办

2.Unity2D 横版 帧动画sprite animation+动画状态机animator+丝滑连击动作

在 Unity2D Sprite 中使用 Animator 将动画添加到游戏对象时无法翻译游戏对象

从 sprite_sheet 坐标创建纹理