3D游戏开发之我做的“和平精英”der

制作3D射击游戏+心得

1 需求分析

设计一个基于Unity的射击游戏,实现“增减玩家血量”、“使用切换武器”、“自动生成敌人”、“敌人攻击玩家”、“房屋躲避”、“游戏HUD”等功能,具体要求如下:
1.1主菜单
打开游戏,进入游戏主界面,如下:
在这里插入图片描述

点击Play:直接进入游戏界面进行游戏
点击Instructions:初始界面出现游戏介绍
点击Quit:直接退出游戏

1.2各项功能
1.2.1 增减玩家血量(blood值)
先设置玩家初始血量为100。当玩家遭受敌人攻击时,血量减去遭受的伤害值;当玩家捡到“救援包”时,血量增加10(一个救援包增加10个血量值)。
在这里插入图片描述
在这里插入图片描述

1.2.2 使用切换武器
当玩家收集电量数量达到2个时,才可以启动“切换武器”这个功能。不同的武器的子弹或导弹发射口都是枪口处,需新建子对象放在相应枪口处。为此需先建立各种子弹的预制体。
在这里插入图片描述

在这里插入图片描述

建立Weapon脚本,实现武器切换函数selectWeapon(int)
在这里插入图片描述

并新建各种武器发射子弹的脚本,并附在相应对象上。

1.2.3 自动生成敌人
首先创建敌人即Robot预制体,实现AI随意寻走(这里参考教案代码,不多介绍)。我在这里添加了Robot脚本,实现JS文件和CS文件的跨类型调用,当检测到该敌人die后,Robort文件就调用Inventory脚本(玩家所有)里的enemyNumber,使其加一。
在这里插入图片描述

当kill了3个敌人,就判定游戏成功,玩家获胜。
其次再实现自动生成敌人,即运用Random.Range。这里新建对象EnemyCloner及其脚本。
在这里插入图片描述

1.2.4 敌人攻击玩家
与前面玩家“增减血量”一样实现,只不过敌人只能减少血量。
创建脚本CharaterDamage:
在这里插入图片描述

同时创建敌人被杀后的状态:
在这里插入图片描述

1.2.5 实现游戏HUD
创建三个GUITexture和三个GUIText,分别显示blood(血量),energy(能量值),enemy(杀敌数)对于收集“救援包”和“能量块”,在分别对象建立相应的脚本Rescue和PowerCell,使用触碰器,当玩家触碰到“救援包”或者“能量块”就会收集。

1.2.6 实现房屋躲避
添加房屋,为房屋的门添加触碰器,当玩家靠近门时,门就会开。
在这里插入图片描述

新建脚本PlayerCollisions:
在这里插入图片描述

2 系统设计

流程图
在这里插入图片描述

3 系统测试

在这里插入图片描述
在这里插入图片描述

4 总结

这是大三时的课设,现在回想起当时写该游戏心情还是十分快乐的,毕竟一开始就是对3D的浓厚兴趣才使我走上了计算机的道路。虽然资源有限,当时“血量包”的图片还是我自己去网站上到处爬的,但总的来说我做出了我想做的成果,答辩时老师也满意,还不错哈哈😊。

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值