您的位置:首页 > 移动开发 > Unity3D

Unity4.3新功能:2D工具 的简单使用教程

2014-05-04 13:04 661 查看
Unity3D最近推出了4.3版本,其中最大的新功能就是这个2D工具了。我这里简单介绍一下这个2D工具是怎样使用的。

首先,在我们创建项目的时候,面板上面多了一个2d和3d的选择,这两个选择有什么不一样的地方呢?





其实这个选项并不重要的,如果选择了2D项目,那么默认创建的摄像机就会变成了正交摄像机,而选择3D项目,默认摄像机会是透视摄像机。这个都是可以在项目里面自己修改的。



而在查看scene的选项里面,多了一个2D的选项,如果启用了,会强制变成2D的视图,如果取消了,会变成我们以前熟悉的3D的scene视图



简单的介绍完2D项目选项之后,我们尝试着新建一个2D的项目,然后导入一张官方提供的土豆人图片进去项目里面:





注意看texture type,这里默认选择了就是sprite类型,然后在类型的下面,有一个sprite mode选项,其中默认是single单个图片的,我们将它改成Multiple多个图片的。



这时候,会多出一个sprite editor的按钮。这个sprite编辑窗口,也可以在window下拉菜单下打开的。





进去了这个sprite编辑器,看到是这样的。如果你是从window窗口打开,而又没有设置Multiple,这里就算打开了也不能编辑的。必须设置Multiple。





然后我们就可以直接的用鼠标画出我们想要的范围了:





比如我们先画出一只手的范围,然后会出现一个sprite的属性设置框,我们要做的事情,是给它一个方便管理的命名,然后调整好它的具体范围和中心点。我这里只是一个演示,所以就偷懒没有另外起名字了。





用同样的方法,把角色其余的部件全部画出来,命名好。最后记得要Apply应用一下,这样我们的sprite就生成好了。





回去看看project窗口里面,会发现这张土豆人的图下面出现了我们刚才绘制的各个部件的sprite





接下来我们尝试着把这些零散的部件组装成一个角色吧,新建一个空的对象。





然后把刚才绘制的身体部分拖动到空对象身上:





这时候场景里面就出现了身体的部分了。





我们再把炮的部分拖进场景里面,但这时候我们会发现,我们本来是想炮在身体后面的,但现在炮把身体挡住了。有没有办法给这些2D的sprite做个排序呢?





排序的地方在这些sprite 的属性里面,有一个排序层的设置,还有一个层内排序的顺序。





我们可以先添加几个排序的层:





排序的方式是越下面的层会挡住上面的。比如这里,Layer2会挡住Layer1,而Layer1又会挡住Layer0。所以我们就可以根据这个角色有多少个大的层级关系,先分配几个层,用于大的排序,然后同一个层里面的排序我们用Order in Layer就可以了





用同样的方法,我们把所有部件都拖到空对象上面作为子物体,然后用排序把它们排列好叠加关系。这时候一个土豆人就拼完整了。





或许我们需要给游戏角色做一个碰撞范围,所以我们可以直接在空对象身上添加一个2D的物理碰撞检测器。





比如我这里给这个土豆人添加了一个box2d的碰撞器和一个circle2d的碰撞器,这样角色的身体刚好就在碰撞的范围内,能被打中的范围就限定在身体了。至于具体的碰撞检测怎样使用,可以去查看一下api的。





有了角色,有了碰撞范围,我们的游戏角色还需要很重要的一个元素,就是动画了。

下面简单示范一下怎样给2D的角色添加动画,还有使用动画状态机:

选择父级的空对象,然后打开animation编辑面板:





在面板里面,有添加曲线的按钮,有开始编辑动画的按钮,这些操作和新的2D工具没太大关系,都是旧功能,如果不会用,请单独百度这一部分的用法。





创建一个新的anim动画,比如Run跑步。



然后我们会发现,在project窗口里面会自动的把动画状态机的controller也一起创建了。




我们再创建多几个动画,比如站立、死亡、发射之类:




然后我们点击进入controller,会发现,这些动画片段都已经默认的进入了控制器里面,我们就可以像以前使用MecAnim一样编辑这个2D角色的动画状态转换了。由于这个不是新功能,如果你不会使用MecAnim,可以查阅阿赵我以前写的MecAnim使用基础教程。




到这里,新的2D工具使用已经介绍完毕了。我又来说说我的看法。对于2D图片的操作,Unity一直都是弱项来的。就算这次添加了这个新的2D工具,其实也只是提供了一个底层的切割图片编辑器而已,不算什么特别有创新的功能了。论实际应用性来说,这个新功能在以前的版本绝对也能轻易的完全做出来,只是需要自己写编辑器而已了。所以我感觉意义没有想象中的大。而至于用来做UI,我感觉还是差了点,起码实用性比NGUI差了很多。如果你不介意重新写一整套的UI框架,那么你也可以拿这个2D工具来做底层用的。

我比较期待的,还是官方说了N久的新UI系统。还有,我比较期待Unity的官方能更大的开发一些图形绘制的底层功能,这样做自己扩展的功能时会更方便。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: