在刚刚结束的Unity Training Day开发者训练营中,来自Unity新加坡的2D研发团队为大家系统介绍了Unity 2D的新功能,并利用该功能完成了一款2D平台射击游戏。今天就来回顾一下此次课程。

课程准备

本次课程的目标是利用Unity 2D新功能,制作一款2D平台射击游戏,其中包括创建2D地图、设置地图碰撞、添加玩家角色及敌人、角色射击等操作。

需要提前准备以下内容:
1、带有2D新功能的Unity 5.5 a1实验预览版,下载链接
2、下载工程资源(请回复本帖):
davinci8,如果您要查看本帖隐藏内容请回复
3、掌握Unity Editor的界面功能及基本操作。

新建场景

1、新建Unity 2D工程并导入下载的工程资源,然后新建场景,使用新的Tile Map工具创建游戏地图。
2、依次点击菜单项Window > Tilemap Palette打开Tilemap Palette,点击界面上方的Palette名称新添加一个Palette。

024014m99x9tp7r65wrwyx.png

3、将Sprites > Environment文件夹下的地图图片拖拽至Tilemap Palette界面,为Unity自动生成的Tile资源指定保存目录。
4、依次点击菜单项GameObject > 2D Object > Tile Map新建一个Tile Map,将Tile Map重命名为GameMap,其子节点Layer重命名为Base。
5、选中Palette上的Grid后切换至场景视图,即可开始绘制地图。

024014g8u0g2vs1uvjvvjr.png

关于Tile Map的用法我们之前也已详细介绍过,还不了解Tile Map操作的开发者请查看Tile Map使用指南。

添加玩家角色

1、删除场景自带的相机,将Prefabs > Game文件夹下的FollowCam拖拽至层级视图。
2、将Prefabs文件夹下的PlayerMatt拖拽至层级视图添加玩家角色,并将其设为FollowCam上Basic Camera Follow脚本的Follow Target,让相机跟随玩家移动。

031543bf07xl9kv8i07sfk.png

3、将之前新建的Tile Map的Sorting Layer设置为LBG1,让玩家显示在地图上面。

现在点击运行,按下方向键即可控制玩家移动了,但由于还未添加碰撞,所以玩家可以穿过墙壁。

024014qylay33z0x6y20xl.png

3、在碰撞层PlayerCollision上添加Polygon Collider 2D组件,并将Tag设置为PlayerCollider。
4、为了不让碰撞层显示,取消勾选碰撞层上的Tile Map Renderer组件。

再次点击运行,玩家此时就无法穿透墙壁了。

024015pqojzto3twqzt3ke.png

3、同样添加Polygon Collider 2D组件并取消勾选Tile Map Renderer。

我们已经在PlayerController脚本的代码中添加了发射的逻辑,如下:

[C#] 纯文本查看 复制代码 //-------------------------------------------------------------------------- // PLAYER SHOOTING //-------------------------------------------------------------------------- // We get the user input both Project Input Settings and custom imput key. if(Input.GetButtonDown(Fire1) (Input.GetKeyDown(KeyCode.Z)) == true) { // Note we just request a projectile whether it fires or not // Spawn the projectile PopShotController.Spawn(gunPoint.transform.position, playerAngle); //Spawn the firing effect for the specific projectile PopShotFlashController.Spawn(gunPoint.transform.position); soundClip.PlayOneShot(soundClip.clip); }

再次点击运行,按下Ctrl或鼠标左键即可发射。

024015js4m4bjgijncwgms.png

敌人本身已配置好动画组件,运行场景,敌人会挡在道路中间来回窜动。
024022q4quzs36g6leuzqa.gif

到此整个2D射击游戏就做完了,大家还可以自行发挥,添加音效、玩家被敌人碰到后死亡以及敌人被射中后死亡的逻辑等。使用全新升级的Unity 2D功能,制作一款2D游戏就这么简单!大家赶紧动手操作起来吧!

Unity, Training Day, 开发者训练营锐亚教育

锐亚教育 锐亚科技 unity unity教程