3d跑酷游戏 [专栏作家]使用Unity创建3D无尽跑酷游戏(上)

相信每个人都至少经历过一次跑酷比赛。一般3D跑酷游戏都有第三视角的摄像头,顺着主角的某个方向。在游戏过程中,主角要尽量避开身边的各种危险物品,这样会导致主角的死亡。游戏级别可以是改变火车轨道避开障碍物(比如“地铁里的酷跑”),或者在拐角处左转或右转,从而安全地沿着设计好的路径(比如“逃离寺庙”)。

RedBorder预制部件

3d跑酷游戏 [专栏作家]使用Unity创建3D无尽跑酷游戏(上)


文章图片

红色边框组件
【3d跑酷游戏 [专栏作家]使用Unity创建3D无尽跑酷游戏(上)】红色边框脚本关联红色边框游戏对象。Max遇到RedBorder就死了,游戏结束。
游戏经理
游戏管理器脚本用来保存一些基本属性,比如游戏状态和玩家的“死”方法。脚本代码如下:

3d跑酷游戏 [专栏作家]使用Unity创建3D无尽跑酷游戏(上)


文章图片

游戏管理器脚本是单一实例,在整个游戏过程中只有一个实例。这个单一实例可以通过实例静态属性获得。要了解关于单例模式的更多信息,请查看统一维基。

3d跑酷游戏 [专栏作家]使用Unity创建3D无尽跑酷游戏(上)


文章图片

构造函数被声明为受保护的,因此外部类不能初始化一个新的游戏管理器类(这是实现单例所必需的)。GameManager包含一个GameState枚举,一个bool值canswing,用来控制是否接受玩家输入(只有“旋转道路”级别),还有一个public方法Die,在Max碰到障碍物死掉后调用。它会改变游戏状态,在UI上显示Max死亡的相关信息。
未筛选材料
随机材质是用来为地板上的盒子随机选择一些颜色。

3d跑酷游戏 [专栏作家]使用Unity创建3D无尽跑酷游戏(上)


文章图片

旋转道路水平,你可以看到道路上随机的颜色块

3d跑酷游戏 [专栏作家]使用Unity创建3D无尽跑酷游戏(上)


文章图片

六种材料被用来给道路上色
这些资料位于“资源”文件夹中,并加载了以下代码:

3d跑酷游戏 [专栏作家]使用Unity创建3D无尽跑酷游戏(上)


文章图片

在清醒状态下,它会为游戏对象分配一个随机的材质进行随机着色。
糖果
为了让玩家开心,大多数游戏都有办法提高玩家的分数。例如,允许玩家相互竞争以增强可玩性。在这个游戏中,选择一些精彩的3D糖果来帮助玩家得分,当Max击中糖果时,得分增加。
下面列出了candy模型/预制件和candy_01的组件(其他三个类似)。

3d跑酷游戏 [专栏作家]使用Unity创建3D无尽跑酷游戏(上)


文章图片

四个糖果预制件

3d跑酷游戏 [专栏作家]使用Unity创建3D无尽跑酷游戏(上)


文章图片

糖果成分

3d跑酷游戏 [专栏作家]使用Unity创建3D无尽跑酷游戏(上)


文章图片

Candy脚本沿着Y轴连续旋转candy,让玩家更容易发现。公共变量ScorePoints保存玩家的分数,Candy也是触发刚体。当Max击中Candy时,Candy对象被破坏,玩家得分。
UIManager
几乎所有的游戏都有平视显示器(Head Display),比如一些2D文本或图片,用来通知玩家关于游戏的信息。使用统一的用户界面系统实现两个非常简单的文本:

推荐阅读