最后,房间

最后,在辛苦地工作了好几个小时之后,我终于将游戏玩法扩展到了一个以上的房间,每个房间都可以产生一个以上的敌人。

现在,还没有任何程序代。 这一切仍由您自己真正地手动放置,但是现在,真正给玩家一种进步感,而不是概念证明。

我所称的Room系统基本上由围绕一个区域的物理墙,墙内的敌人以及处理状态变化的主脚本组成。 当玩家走进去时,所有出口都被禁止,玩家必须击败敌人才能继续前进。 它在概念上非常简单,但是由于我以前编写代码的方式,其实现颇具挑战性。 我基本上破坏了所有可能破坏的东西,并花了许多时间修改和重写代码,以使其更加适用于未来,并且更没有错误(尤其是您,寻路)。

上面是我的Unity工作区的屏幕截图。 之所以分享,是因为我想迅速强调一下我如何设置工作流程。 中间面板是“场景”视图,或一种查看所有游戏对象如何独立于任何实际游戏摄像机进行布局的方式。 图片中的红色和白色矩形是“小物件”,我告诉Unity为我绘制。 Gizmos基本上只是一种巧妙的方式,可以创建游戏中实际上不用于视觉参考的形状-因此,在这种情况下,白色矩形是房间的边界,红色正方形是用作入口和出口的图块。

左侧面板是场景中所有游戏对象的层次结构。 您可以将其视为文件结构-每个对象都可能具有父级和子级,以其缩进表示。 这是组织对象的实用方法,例如将每个房间单独分组,从而隔离敌人和每个房间中涉及的其他组件。

最终,右侧面板(目前与底部面板无关)提供了“检查器”视图,您可以在其中更改所选游戏对象的值。 当前已选择“ 2”室,您可以看到我为方便自定义房间而手动创建的所有选项:房间的边界,入口,要使用的关联瓷砖地图,用于这样,我就可以复制并粘贴Room对象,然后更改选项以使其最适合粘贴到其中的房间。

还有一些我最近所做的“补丁说明”:

基本射手敌人

已实施的优先级队列

从使用内部Node类切换到Unity的TileMap系统

寻路不再使用对角线

重新实现a *

设置会议室系统

改造后的敌方控制器与房间系统兼容

使用图块+ 4个房间设置地图

简单的相机运动