unity 3D期末大作业课程设计

您所在的位置:网站首页 人物移动代码 unity 3D期末大作业课程设计

unity 3D期末大作业课程设计

2023-05-25 20:47| 来源: 网络整理| 查看: 265

0 源代码

1 需求分析

设计一个单机跑酷游戏,实现“人物移动(跳跃、向左和右移动)”、“游戏计时”、“道具自动生成”、“运动加速”、“拾取金币”、“拾取磁铁”、“拾取跑鞋”、“游戏菜单”等功能,具体要求如下:

1.1 人物移动

人物运动分为3种,向左移动、向右移动和向上跳跃。

左右移动:添加一个状态位,最左侧跑道状态位为0,中间跑道状态位为1,最右侧跑道状态位为2。

跳跃运动:添加一个刚体属性,勾选重力。在脚本中,获取重力属性,跳跃时,施加一个向上的作用力,物体向上跳跃。

1.2 游戏计时

使用协程,在游戏没有暂停的状态下,每过一秒,计时+1s。

1.3 道具自动生成1.3.1 跑道

游戏在开始后,会先实例化5次,在视线内生成一些跑道。跑道需要移动,并且移动速度越来越快。

当跑道运动到摄像机(视线)后面时,跑道自动销毁。在销毁前,跑道会向工厂类发送继续实例化新跑道的消息。

1.3.2 金币

金币在跑道实例化时,会通过多轮随机函数,判断是否需要实例化。实例化在跑道的左、中、右侧,并成为跑道的子物体。

1.3.3 磁铁

磁铁在跑道实例化时,会通过多轮随机函数,判断是否需要实例化。实例化在跑道的左、中、右侧,并成为跑道的子物体。

磁铁可以自动收集到金币,不需要和金币接触。

1.3.4 跑鞋

跑鞋在跑道实例化时,会通过多轮随机函数,判断是否需要实例化。实例化在跑道的左、中、右侧,并成为跑道的子物体。

跑鞋可以人player跳跃的更高,更好躲避高度较高的障碍物。

1.3.5 火车

火车在跑道实例化时,会通过一轮随机函数,判断是否需要实例化。实例化在跑道的左、中、右侧,并成为跑道的子物体。

火车自身也会向前运动,并且火车的高度大于玩家的跳跃高度,如果玩家没有跑鞋,只能到其他没有火车的跑道躲避火车。

1.3.6 障碍

障碍在跑道实例化时,会通过多轮随机函数,判断是否需要实例化。实例化在跑道的左、中、右侧,并成为跑道的子物体。

玩家要躲避障碍,有2种方式。一是跳跃躲避障碍,二是移动到其他没有障碍的跑道躲避障碍。

1.3.7 高墙

在跑道实例化时,会通过一轮随机函数,判断是否需要实例化。实例化横在跑道前方。通常配合其他道具,增加游戏难度。

玩家躲避高墙,只能跳跃。同时,还要注意其他道具的影响。

1.3.8 悬崖

在跑道实例化时,会通过一轮随机函数,判断是否需要生成。生成方式是在实例化时,坐标值往前面移动5个单位长度,达到制造悬崖的效果。通常配合其他道具,增加游戏难度。

玩家躲避悬疑,只能跳跃。同时,还要注意其他道具的影响。

2 流程图图2-1 关卡图

3 系统实现3.1 预制体

以下图片均来自于百度图片:

图3-1 预制体

3.2 HUD图3-2 HUD面板

 

3.3 工厂类图3-3 工厂类

4 系统测试4.1 实例化跑道及道具图4-1 实例化

 

4.2 跳跃

普通跳跃:

图4-2 普通跳跃

跑鞋跳跃:

图4-3 跑鞋跳跃

4.3 躲避火车图4-4 躲避火车

4.4 拾取金币图4-5 拾取金币

4.5 磁铁吸收金币图4-6 磁铁拾取金币

5 系统总结

本次课程设计,总体完成的比较顺利,遇到的问题基本上能够解决。

在游戏开发的过程中,遇到的最大的问题就是向预制体进行消息推送。首先是在预制体实例化的过程中,没有给实例化的对象加上名称,导致GameObject使用Find函数,找不到对象,无法进行消息推送。这个问题的解决其实是比较轻松的,但是对于还没有实例化的预制体进行消息推送,就会出现问题。这一问题的解决办法是,在预制体脚本中,获取要进行推送的对象的脚本的属性,通过GetComponent函数,直接获取要传递的消息,这样就能很好的解决还没有实例化的对象获取将要传递的信息。

本系统也存在一定的不足,主要表现在道具的完全随机生成的,这样就会给玩家的跑酷增加难度。比如,在生成一个悬崖后,后面可能马上生成火车和高墙,而玩家是不能连续跳跃的,这样就会出现玩家因躲避不及,而导致游戏结束,影响游戏体验。在真正的跑酷游戏中,金币一方面可以被拾取,另一方面也能起到引导玩家走位来躲避障碍的作用,在本游戏中这一点没有体现。

结合以上特点,本次游戏在道具生成逻辑上,还有一些改进的空间。如障碍物的生成逻辑,不能让障碍物一下连续生成,否则会形成无解的局面。另外,金币也应该有一定的引导躲避障碍的作用。在后续的改进中,如果能实现以上功能,将会有很好的游戏体验。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3