现在的位置: 首页 > 综合 > 正文

Unity3D系列教程–使用免费工具在Unity3D中开发2D游戏 第三节

2013年08月03日 ⁄ 综合 ⁄ 共 4012字 ⁄ 字号 评论关闭

  声明:   本博客文章原创均为个人原创 , 翻译类文章均为个人业余时间翻译,版权所有。转载请注明出处:http://www.wjfxgame.com,另外本人的CSDN博客:http://blog.csdn.net/ml3947    


  第三节的教程到来了。如果之前的教程没看,建议大家从头开始。因为这是个系列教程,最终的结果是制作一个完整的2D游戏。


  在前两节中,我们已经制作出了完整的游戏地图了和简单的精灵动画了。这一节中,我们将会制作我们的精灵角色,并且能够在地图中自由移动。

 制作角色Sprite Atlas


  首先,我们需要使用TexturePacker来制作我们的Sprite Atlas

  精灵的素材下载地址如下: http://pan.baidu.com/share/link?shareid=499129&uk=1224862838

  1.打开TexturePacker 然后把精灵素材从sprites/player文件夹中拖到 Sprites 的面板中。


  2.将 Algorithm  设置为 Basic


  3.将 Border Pading 设置为 1。


  4.将 Shape Padding 设置为 1。


  5.将 Data format设置为 cocos2d,然后在 Data File下面 点击"..."按钮,浏览你要保存的精灵的位置(我的把它放在了Assets/SpriteAtlases下面),把名字改为"player",然后点击"Save"。


  6.TexturePacker会在Data File中自动添加 ".plist"的后缀,但是Unity需要的是.xml。所以我们把.plist更改为.xml。


  如果你完成了上面的步骤,那么会看起来如下图:

 

  我们点击 Publish,然后就可以在Unity3D中的SpriteAtlases文件夹中看到player.png文件和player.xml文件。


  另外,我们需要在Unity3D中改变Sprite atlas 来让它看起来比较正确。首先点击player.png,然后在 Inspector视图中 把 Filter Mode更改为 Point。接着,点击 Override
for web
,把Format 设置为 Truecolor,然后点击 Apply

  制作角色精灵


  现在,我们将继续使用Orthello 2D插件来制作我们的角色精灵。


  Sprite Container


  1.在Unity3D中,展开Orthello文件夹: Orthello -> Objects -> Sprites -> SpriteAtlas 然后把 SpriteAtlas-Cocos2D拖动到Hierarchy视图中。


  2.在Hierarchy视图中,把 OT object展开,你会看到 Containers下面新增加了一个"Container" Object。这个是包含我们所有的角色精灵的贴图的物件。我们把它重命名为"player"。


  3.从SpriteAtlases文件夹中把player.png拖动到"OTSprite Atlas Cocos 2D"脚本下面的Texture属性上。同样的,把player.xml拖动到 Atlas
Data File
 属性上。


 设置我们的角色精灵动画


  现在,我们需要把所有的精灵帧制作为单独的动画。


  1.从 Orthello ->Objects -> Sprites 中拖动一个 Animation 到 Hierarchy视图中。这个将会在 OT -> Animations下面新增一个Animation,我们把它重命名为"player
anims"。


  2.选中我们的"player anims"OTAnimation,然后把按下图来进行设置。同时,从 OT -> Containers中拖动"player" object到 Container 属性上。


   

  因为会有绳子,下坠等各种动画,所以Framesets会比较多。

  制作角色精灵


  在 Orthello -> Objects -> Sprites下面找到 Animating Sprite,然后把它拖到 Hierarchy 视图中。然后把它重命名为"player"。


  选中"player",然后拖动"player anims"到它的 Animation属性上。接着它的 Sprite Container应该会自动链接到 "player"的container。如果没有,可以自己拖动设置。


  现在你应该可以在场景中看到我们的角色了,点击 play,你会看到这个角色会执行所有帧的动画。我们不需要角色在启动的时候就执行动画,所以把 Play On Start 取消。

 给我们的精灵增加碰撞


 1.选中 player 的"OTAnimating Sprite",然后把 Collidable  复选框选中。这个将会自动给Object增加一个刚体。


 2.点击 Physics 下拉列表,然后选择 Custom


 3.在 Transfrom下,设置Scale Z 为 1。


 4.改变Depth为 - 1。


 5.在Box Collider下,设置Center Y为 -0.1,Z为 1。然后改变Size X为0.45,Y为0.6,Z为0.4。


 如果你完成了上述的步骤,那么精灵的设置应该如下图所示:

  

  把Depth改为 -1,然后把Box Collider的 Center Z 改为 1。这个会把精灵往摄像头拉近 1个单位。这个可以确保精灵将会永远显示在地图和其他物件的前面。


 

 设置Shooting动画


 我们需要增加另外一个动画,当你按下fire的按键时,需要一个动画击向地面。


 1.从 Orthello -> Objects -> Sprites中拖动一个Animation到 Hierarchy 视图中。重命名为"shoot anim"。


 2.选中"shoot anim",然后按照下图来进行设置。然后从 OT -> Containers 中拖动 "level" 到 Container 的属性上。

  

  Shoot Sprite


  同样的,创建一个Animating Sprite,然后重命名为"shoot",然后拖动AnimationContainer到相应的属性位置(同上面的步骤)。然后设置 Transfrom
Position
 为 -1,Depth为 - 1,Frame Index 为 18。


 我们把 shoot Sprite的 Mesh Render 去掉,因为我们不需要一开始显示它,我们将会在脚本里控制。

 Parenting The Shoot Sprite


 我们需要shoot sprite跟随player一起移动,而且根据主角的方向,它会显示在主角的左边或者右边。


  1. Game Object -> Create Empty 创建一个空的Object。


  2.重命名为"shoot parent",然后确认X,Y,Z 都为 0。


  3.在 Hierarchy 视图中,将我们的精灵"shoot"拖动到"shoot parent"下,成为它的子Object。


  4.然后将"shoot parent",拖动到"player"下,成为"player"的子Object。


   如果你完成了上面的步骤,那么项目的结构图应该看起来如下图。另外,我单独建立了一个空的Object LEVEL来放置其他的物体。


  

  现在,我们即将添加我们的脚本,来让我们的角色可以移动了。


   1.下载脚本:http://pan.baidu.com/share/link?shareid=499374&uk=1224862838​,解压它到硬盘的任何位置,然后把脚本文件拖动到你的项目Asset文件夹里面。


   2. 新创建一个空的Object,重命名为类似与"Scripts"。然后把xa.cs拖动到"Scripts"上。


   3. 将player.csplayerAnims.cs拖动到Player  object上。


   如果全部步骤都已经完成了,运行程序时,我们的角色将会站在砖块上,而不是掉落。然后按left 和 right时,它可以移动,然后动画。

  增加Ladder Colliders


  为了让我们的Ladders工作,我们需要增加一些Colliders。


 1.创建一个Cube,重命名为"Ladder"。


 2.我们在Tag Manager中增加两个Tag"Ladder"和"Rope"。并且我们需要增加另外一个层"NoDraw"。


 3.把刚才创建的Cube"Ladder"的Tag修改为"Ladder",然后把Layer更改为"NoDraw"。


   由于我们并不希望Cube显示在游戏中,我们在Main Camera中的Culling Mask 里取消 "NoDraw"。


  确认你的Ladder为4个精灵高度,选择Ladder collider,然后把Scale Y更改为 5(比可以看见的梯子高一个单位)然后注意对齐。


  你的梯子应该看起来如下图:

  

  接下来,如果你运行程序,你可以看到角色可以上下梯子并播放上下梯子的动画了。

 增加Rope Colliders


 步骤同上,创建一个Cube重命名为"Rope",tag修改为"Rope",然后把Layer改为"NoDraw"。


 然后同样的把Scale X设置为 4个单位,然后与Rope对齐。


 如下图所示:

 

 如果你运行程序,你会发现角色可以从Rope上走过,或者掉落在Rope上。如果你在Rope上按下,角色将会掉落。

 

 现在,我们已经能够制作地图,制作角色,然后控制角色在不同情况下移动的动画。在下一节中,我们将会增加得分系统,我们可以破坏砖块,捡起物体等。


 到这一节的项目文件下载:http://pan.baidu.com/share/link?shareid=499420&uk=1224862838


 运行效果图如下:

 ​


 转载请注明出处:http://www.wjfxgame.com


抱歉!评论已关闭.