Unity3D项目实战笔记(11):Unity 2D会用到的知识点小结

2016年01月18日 14:07 0 点赞 0 评论 更新于 2025-11-21 19:41

我全职进行Unity 2D手游编程已有8个月,目前已上线1款手游,还有1款正在研发中,预计1月中旬上线。在此,我将小结2015年做的2D手游棋牌项目中涉及的部分2D知识点。

(考虑到我是研发人员,这里仅列出项目中用到的知识点,不会涉及公司研发细节,毕竟签署过保密协议。)

需要说明的是,项目的服务器采用商业化表现出色的SmartFoxServer、JAVA和MySql搭建,稳定性极佳。

各模块知识点详情

UI

在进行UI设计时,通常需要考虑UI布局。可以采用TK2D、NGUI或者UGUI这几种解决方案,根据经验,不建议混合使用这些方案。这三种UI方案均提供了UI自动布局功能。此外,字体也是UI设计中需要重点考虑的要素,常见的有ttf动态字体方案和bmfont图片字方案。在不考虑特色方案的情况下,ttf动态字体一般无需过多考虑。因为在使用Unity开发的手游中,输入文字和数字的体验不佳,所以动态字体的使用概率非常低。

物理

从Unity 4.6版本开始,官方加大了对原生2D的支持力度,提供了2D特有的组件,主要是物理组件,例如Collider 2D、Rigibody 2D、Joint 2D等。这些组件为2D游戏的物理模拟提供了强大的支持。

动画

在2D游戏中,动画主要分为两种类型。一种是使用多张图片制作的帧动画,例如牌型动画;另一种是特殊需求下的骨骼动画,例如人物动画。TK2D和UGUI提供的帧动画功能,使用起来非常简洁。

Sprite

Sprite中文翻译为精灵,实际上就是图片,它是2D游戏中除了UI之外最重要的界面元素。在处理Sprite时,通常会有九宫格的切图需求,并且可以采用TexturePackager进行图集打包压缩,以减少资源占用。

Advance

在项目开发过程中,对于有项目实战经验的开发者来说,有些事情需要提前考虑和布局。例如AssetBundle的应用,这涉及到服务器的设计架构;还有粒子和shader的应用。另外,在项目中期需要考虑手游的优化,特别是以k为单位对apk包大小进行优化。值得一提的是,从Unity 5.*版本开始,Android平台默认支持X86和Arm架构,这导致空包大小达到18M。然而,国内Android的X86设备较少(据说小米平板是),为了减少包大小,方便运营推广,我们裁剪了X86版本,将Android apk文件大小缩小了8M。

公共规范

公共规范虽然与具体编程关系不大,但它对团队合作的默契度起着决定性作用。在项目组织方面,规范好文件和文件夹非常重要,这有助于提高团队成员之间的沟通效率。另外,在与美术团队沟通时,需要确定好相关约束,例如960*640 2D横板的美术标准。由于Unity在2D开发方面已经很强大,项目中也引入了一些第三方插件,如DOTween、VP_Timer、PoolManager。

总结

我们要认识到,学习Unity 2D知识和成功上线一款产品之间存在一定差距。这也是为什么一般公司在招聘时会特别标明需要有成功上线一款手游的实际开发经验。

作者信息

洞悉

洞悉

共发布了 3994 篇文章