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

声明: 本博客文章原创均为个人原创 , 翻译类文章均为个人业余时间翻译,版权所有。转载请注明出处: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。


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

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

我们点击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视图中,把OTobject展开,你会看到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属性上。


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

因为会有绳子,下坠等各种动画,所以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。


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

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


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


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


设置Shooting动画


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


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


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

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


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来放置其他的物体。


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

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


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(比可以看见的*高一个单位)然后注意对齐。


你的*应该看起来如下图:

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

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


增加Rope Colliders


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


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


如下图所示:

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

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

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


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


运行效果图如下:

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


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