小编小时候挺喜欢玩《黄金矿工》现在想来都是满满的回忆,所以今天小编心血来潮便有了这篇文章啦
模仿绳子
黄金矿工游戏中,玩家通过按键操作并发射钩子来挖取金矿,钩子与绞盘之间有一条绳子进行衔接,这条绳子我们运用Unity提供的LineRenderer组件来进行完成。
因为材料的约束,我们运用钩子的这张图片做为玩家的本体,并在上面增加LineRenderer组件,然后在Materials选项中挑选默许的精灵图原料(Sprites-Default),然后将Order in Layer选项修正为1,防止被布景2D物体遮挡。其间,Positions选项是用来设置线段的2点,LineRenderer组件会在游戏运行时自动在2点之间进行连线。而我们也是在代码中动态修正这2点的值,来完成绳子的效果。大致设定如图:
LineRenderer设置接下来,在绞盘的方位新建一个空物体,用于承认线段的起点。然后在代码中更新Positions选项中点的方位即可。代码如下:
完成后效果如下:
线条效果
旋转
游戏中,钩子总是绕着绞盘来进行旋转。运用RotateAround这个函数就可轻松处理,难点是如何约束钩子只在下方进行旋转操作,而不会旋转到上方。此处,我们运用向量之间的夹角来进行判别,钩子是否旋转出边界。因为材料的问题,钩子对应的方向是Up轴的正下方。如下图:
人物朝向我们就需要通过Up轴的反方向,与绞盘的Right轴之间的夹角,来进行旋转的处理。代码如下:
完成后效果如下:
移动
通过上面的步骤,我们可以很轻松的知道,钩子的朝向总是自己的Up轴的反方向。那么移动的方向也是如此。只要一贯朝这个方向移动就行了,回来也是相同的道理。代码如下:
完成后效果如下:
道具交互
不同的道具有不同的交互效果,本作中首要的效果就是得分增加,道具增加,以及玩家移动减速了。
道具效果
新建一个PropScript脚本,专门用来记载其时道具的触摸效果或许获得分数。其间通过道具的类型来进行处理。代码如下:
人物减速
我们运用触发器来检测钩子是否抓中了物体,假设抓中了。就在此时更改玩家的速度。因为之前在PropScript中设置了缩放的等级,我们可以通过这个来核算新的速度(PS:人物速度 = 原人物速度-原人物速度*减速系数*缩放等级)。代码如下:
道具生成
黄金矿工游戏中,有多种道具来丰盛游戏的内容。在进行道具生成之间,先准备好对应的游戏数据,可以使开发事半功倍。
数据准备
首要制作所有的道具的2D预制体,并一致将他们的Order in Layer参数改为1(PS:因为布景的2D物体对应参数设置的为0,为了可以覆盖在布景之上,就需要调高参数),然后将他们保存在Resources/Prefabs文件夹下(PS:子文件夹可以随意设置,可是必须得是在Resources文件夹下),方面后续代码的读取。如下:
不同用处的预制体接下来,新建一个Gamemode脚本,来控制并办理游戏中的道具生成以及成功相关功用等。然后在里面初始化对应的道具数据。代码如下:
其间设置的道具生成的规划大致如下图:
道具生成规划道具生成
随机方位
现已准备好了对应的数据,接下来就是依据对应数据生成道具。首要随机道具生成的方位,通过之前GameMode设置的生成数值,我们可以轻松得到在规划内的随机坐标。代码如下:
随机旋转:
因为之前设置了缩放等级,随机缩放就只需要从数组中取出对应的值即可。于是代码如下:
通过之前设置的关卡分数信息,以及各种道具的分数。我们来生成其时关卡的道具。首要是先随机出道具,然后核算其时现已生成道具分数的总和,检查是否超出目标关卡分数,超出就不在生成,不超出就重复上面的操作。直到分数超出(PS:道具的分数=道具装备的分数*道具的缩放值)。代码如下:
游戏演示