Unity做2D端游时怎样优化性能?

1回答

Unity做2D端游时怎样优化性能?

提问者 剎衲ㄚ銷遙 2017-08-07 834浏览
1.将小物体的图片放在一张图里,在Unity里拆出来,去拼成大物体,比如把草,小石头和砖块拼成一个完整的跳台。此时大物体的重复利用就相当于小物体的重复利用,因为是小的拼成的。

2.将在PS里拼好的一个完整跳台的图片导入Unity。此时地面和跳台是两张不同的图,(可能会放在一个大图里),也会重复利用。

这两种方式性能表现怎么样?哪种方式更好?
学生党,请大佬们指点!
如果大佬有更多关于Unity做2D端游的经验,请赐教!

快来消灭0回答吧

{{ dataList.answer_count | view-format }}回答
  • 邓涛 2017-08-08 10:43
    专家回答
    这两种方法各有优劣,取决于你的应用场景,根据不同的场景选择具体方法,下面我们从技术角度本身来讨论他们的优劣,之后,您就能根据技术本身的特点,在自己的情境中判断哪种方式更好了。

    假定我们有N张不重复小图(或者说从像素区域来看,可以拆成N张小图),我们用K张图把它们“装”起来(图集,一般为规则尺寸),它们是构成M个场景的单位元素。

    1.在实际运行过程中,我们不管M的数量级有多大,单个M的尺寸有多大,它们所占用的内存,极端情况就是k张图所占内存的总和,而且单个场景的的存档不需要使用大的像素图(方法2),只需要保存小图拼装的配置即可,能节省存储量。

    2.一个性能问题, 如果K的数量不大,在内存合理的范围内,全部载入,那么后续切换场景的时候,不需要再加载图片,加载性能比较好。

    前面说的都是方法1的优势,现在来说说方法1的劣势

    1.假定N的数量和小图的尺寸较大,导致需要多张图才能容得下,那么会导致渲染的drawcall会增加,而方法2,由于是一张图(即便是大图),只需要一个drawcall。

    2.当需要多张图容纳小图的时候,可能出现一个场景命中了多张图,而且可能是命中图的部分小图,那么没使用的小图,就成了浪费,这些浪费,不但占用内存(显存),还可能导致cache性能下降。

    所以,你需要考虑的问题是在性能、内存、硬盘存储等因素做平衡。

    方法1的劣势情形,反而可能是方法2的优势情形,很多时候,两种方法混合使用。

    对于学生的学习作品,一般来说规模较小,我建议你选择最简单的方式先实现,然后再尝试其他的方式,动手试验,去对比两者的差异,这样才能理解的更透彻,而且能发现以前你可能根本没想到的问题。

    总之,勇敢去尝试。

    最后,祝你学习有成。


    3评论
  • {{ answer.user.NickName }} {{ answer.profession }} {{ answer.created_at | time-format }}
    专家回答
    {{{ answer.answer }}}
    {{ answer.answer_count | view-format }}评论
加载中... 查看更多回答