感谢大家一直以来的关注,十分惭愧没有更新unity2D的教程,后续打算抽时间更新一组游戏开发和UI开发的教程,敬请期待!

群里和大家讨论unity适不适合做2D游戏的问题,有个好心的朋友说给大家说说转unity要注意什么问题吧!我觉得这个话题很好,但是我充其量也只算个熟手,瞎扯几句,希望对大家有帮助吧。

unity2D vs spritekit的开发理念差异:

动画

spritekit是标准的cocos模式,纯代码开发,所有的素材用代码加载,组合,调用。不管是帧动画还是变换动画,都是用代码来控制。而且内置了很多变换动画函数,比如位移,缩放,旋转等。
unity中,帧动画都是拖拽实现,非常的方便,而且带动画编辑器和控制器,简单的动画都无需任何代码。但是unity中不具备内置的变换动画函数,还好有iTween组件可以很方便的实现出来。

脚本

spritekit中是标准的软件开发模式,代码为核心,定义各种类来控制各种对象的所有行为,一个load初始化所有资源,然后update函数撑起一片天,这个我个人觉得主要还是因为受到xcode这个对游戏开发不友好的工具的限制。
unity中是脚本化和组件化,以游戏对象GameOjbect为核心,脚本只能算作辅助的组件之一,一切都以编辑器为主。一个场景加载好以后,所有的GameObject各自做各自的初始化和各自的update,彼此不互相干扰,非常清晰。这也是我偏爱unity的原因之一,在spritekit中所有的对象全都在场景类中彼此交错,非常难拆分。

树形结构

这其实算是唯一的相同点了,spritekit中用node来管理对象结构,创建/销毁/设置父节点等,都是用代码来完成。用代码的弊端很明显,就是不直观,你每次都要去看代码才知道两个node是什么关系。
unity中,有树形面板,所有对象都清晰的标明了父子关系,随手截了一个我当前项目的面板,连美术都能看懂的树形图,好用到爆,麻麻再也不怕我挂错父节点了。
图片描述

资源管理

spritekit中,主要是用xcode管理素材,众所周知xcode对资源管理是多么的不友好,导入还要import,删除还要remove reference,还不能看缩略图,对图集的拆分也很不方便。
unity中有个project面板,里面所有资源都可以用预览图模式查看,而且像finder一样可以拖拽添加和删除任何资源,甚至还可以查看该资源在当前场景的所有引用。prefab就更是一个逆天的东西,可以快速方便的创建类似的GameOjbect,相当于一个模具,不需要每次都初始化其属性。

总结

其实要真是对比的话,说一天也说不完,这些是我最先想到的,应该是比较常见的一些sk的问题unity能够弥补的。说了这么多好像都是sk的锅,其实sk也有自己最大的优势:执行效率和包尺寸。这两个是unity的硬伤,而且unity目前是无解的。sk空项目打包后大概8MB没记错的话,unity空项目打包20-30MB左右吧。而且很多unity游戏都有发热严重的问题,sk跑60帧是无压力的。虽然unity有很逆天的Editor模拟器,但是sk打包速度超快,build到真机也是十分的方便。

unity更新到5.3以后,libiPhone这个最核心的库已经达到了1GB以上,打包出的游戏体积直接翻了一倍(官方说是因为苹果最近强制App必须支持32和64位处理器),让人十分怀念sk的日子啊。萝卜白菜各有所爱,大家还是根据需要选择吧!


敲键盘的猫
772 声望131 粉丝

一只热爱科技的猫