查看原文
其他

Unity的2D游戏《吃豆人》案例及源码下载!

2016-01-07 Unity官方平台

前段时间,我们发布了使用Unity的2D功能制作的《吃豆人》系列教程


教程受到了非常大的欢迎,不过,一些动手制作该游戏的朋友,竟然发现自己的吃豆人会被迷宫卡住!还能不能愉快地吃豆了!


我们社区的U小粽同学表示“救不了中国的股市,我要救吃豆人!"


于是整合和精简了该教程中的代码,并提供了项目的资源包下载!点击【阅读原文】直接进行下载学习,如果有任何问题,欢迎大家反馈给U小粽同学。


以后,我们也会提供更多项目教程和案例与大家分享。现在让我们来拯救吃豆人吧。

以下两个问题,是原教程中的问题。

问题1:按照教程编写,当Player移动到部分墙体位置,Player便无法移动?



首先先看看在这种请况下,目标点与Player当前的位置关系,我们通过Debug.log进行判断。


以下是所得到的结果:


很明显的发现,目标点位置超出了Player当前位置一个单元格,因此我们可以得出结论,在此处无法移动的原因是:Player由于墙体的拦截无法到达目标点。

(Vector2)transform.position == dest
的判断无法为True,其他方向的移动无法执行。

简单分析其原因,Player在移动过程中,当到达目标点后,不会立即停止移动,而此时脚本已经开始执行替换目标点的代码。由于墙体的拦截,Play的位置与目标位置不等,导致Player无法移动的现象。

故此,我们需要在判断行进路线时考虑这一因素。见下图

自此,该问题得到了解决。

问题 2:某些位置时会出现如图现象,Player无法移动。


这个问题是因为射线没有检测到墙体,最简单的方法是将墙的Collider进行稍微扩大。

最后,希望大家用Unity做成更多更棒的2D游戏哦。


点击“阅读原文”即可下载案例


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存