Unity入门——实现一个简单的跑酷游戏
资源预制
一款跑酷游戏,需要大量重复的场景资源,比如道路、障碍物等,无论是从游戏体验的角度还是运行效率的角度考虑,都不应该全部事先摆好,而是应该由代码随机生成并在使用结束后销毁,这里就需要用到unity中很重要的一个概念——prefeb(预制体)。
首先是道路的生成,除了在场景中放入初始道路外,我们要做到在人物移动时在前方生成道路,道路(以及作为背景的水面)是一定需要做成预制体的。
将初始场景如下搭建,道路以及水面大小自行在右侧inspector面板的transform组件中调整至合适大小。
从Asset中拖动模型到Hierarchy中设置好transform等组件,再将这个GmaeObject到Assets面板中,选择original prefeb即可,如果不需预先布置,在设置好prefeb之后可以在hierarchy面板中将这个GameObject直接删除,没有影响。这里道路只需要transform组件即可。预制体的修改会影响它的全部复制体,而复制体的修改不会影响预制体。
而障碍物我们需要其带有collider属性,以便判定人物是否碰撞到。
我们需要三种障碍物,分别可以通过跳跃、下滑或者两者都可通过。
可以通过AddComponent->Physics->BoxCollider组件中设置碰撞体的体积来实现不同的碰撞体,注意使用的是局部坐标系(这种方式相对复杂,需要配合动作同时调整人物体积或位置,本例的实现方式会在下一篇中说明)。
额外拾取的积分奖励道具也需要碰撞判定,因此同样添加BoxCollider属性。