基于Unity3D的第三人称射击类游戏
2019-07-10蔡国宇姚毅
蔡国宇 姚毅
【摘 要】随着计算机硬件技术的不断提升和多媒体技术的迅速发展,各种类型游戏开始被设计出来,游戏的视听效果与玩法也在这一过程中不断提升。其中,第三人称射击类游戏通过动作与枪战的完美结合,能让玩家以旁观者或操纵者的身份,扮演发射子弹的人物,让玩家拥有刺激的游戏体验。
【关键词】Unity3D;第三人称;射击游戏
中图分类号: TP317 文献标识码: A 文章编号: 2095-2457(2019)13-0125-002
DOI:10.19694/j.cnki.issn2095-2457.2019.13.058
Third person shooting game based on Unity3D
CAI Guo-yu YAO Yi
(Hunan University of Humanities, Science and Technology,Hunan Loudi 417000,China)
【Abstract】With the continuous improvement of computer hardware technology and the rapid development of multimedia technology, various types of games have been designed, and the audiovisual effects and gameplay of the game have been continuously improved in this process. Among them, the third-person shooting game, through the perfect combination of action and gun battle, allows the player to act as a bystander or manipulator to play the bullets, so that the player has a thrilling gaming experience.
【Key words】Unity3D; Third person; Shooting game
0 引言
随着计算机硬件技术的不断提升和多媒体技术的迅速发展,各种类型游戏开始被设计出来,游戏的视听效果与玩法也在这一过程中不断提升[1]。其中,第三人称射击类游戏通过动作与枪战的完美结合,能让玩家以旁观者或操纵者的身份,扮演发射子弹的人物。有利于玩家观察周围的事物,从而获得更多的信息,做出准确的判断,让玩家拥有刺激的游戏体验。本文基于Unity3D的人工智能设计一款第三人称射击类游戏——《狩魂行动》,并实现了各项基本功能,能够使玩家在虚拟的世界中获得真实的游戏体验,得到精神上的满足[2]。
目前市场上主要的引擎主要有Gamebryo引擎、Unreal Engine3虚幻引擎、BigWorld引擎和Unity3D引擎。它们的代表作分别有《星辰变OL》、《使命召唤3》、《魔兽世界》和《Monument Valley》。与前三种引擎相比较而言,Unity3D 是最近几年才流行起来。但是,凭借完美的跨平台系统,它迅速地在引擎市场占据了十分重要的地位[3]。
1 游戏设计
1.1 游戏说明及玩法
本游戏以第三人称的视角通过M4、RPG等武器完成任务。游戏场景是瘟疫爆发的废弃城市,原本为普通的城市居民,在瘟疫爆发后,失去理智变异成极具攻击性的怪物,当感受到周围有活物的气息就会凶狠的发动攻击。玩家扮演的狩魂猎人为了赚取佣金来到这座城市,通过在战斗中击杀怪物收取灵魂,来完成任务,通关游戏。让玩家在战斗过程中获得丰富的游戏体验。
1.2 游戏功能模块设计
本游戏设计并实现了游戏主界面、场景系统、角色系统、状态系统、道具系统、交互系统和灵魂收集系统七个游戏功能模块,如图1所示。
2 游戏设计与实现
2.1 游戏主界面的设计与实现
在Unity3D环境中,通过Image设置游戏主界面背景图片,设置游戏开始与退出按钮,如图1所示。完成主界面设计。在玩家单击开始按钮后,出现游戏加载界面。加载过程中随机出现四条操作小提示,告知玩家操作按键,在游戏过程中,可按ESC键退出结束游戏。
2.2 游戏场景的设计与实现
首先先进行广泛的游戏场景资料收集和设计工作,之后运用Unity3D的地形系统创建一个基本地形,并对其进行平面与地形的调整。再通过3DMAX进行建筑及道具模型的制作,在制作的过程中注意调整模型的面数和大小,在模型导入Unity3D后进行调试并贴图赋予模型。
2.3 玩家角色的设计与实现
将人物模型导入Unity3D后,通过Input.GetAxis(“Horizontal”)和Input.GetAxis(“Vertical”)两个控件,使狩魂猎人获得横轴和纵轴的移动,实现W、S、A和D键控制前后左右移动,按Shift和移动键进入冲刺模式。狩魂猎人进入游戏后拥有M4和RPG两把武器,分别按1和2键进行武器切换。在游戏中发射子弹时,调动枪口火花特效。再建立一个名为BulletManager的C#脚本,对发射出去的子弹进行检测,当子弹打到怪物时,怪物血量减少,当怪物血量减少至0时,怪物死亡,子弹销毁。未击中怪物时,子弹自动销毁,释放内容。实现的部分代码如下:
public void collectionBullet(BulletMove bullet)//回收子彈
{bulletLives.Remove(bullet);
bulletDeaths.AddLast(bullet);
bullet.gameObject.SetActive(false); }
2.4 交互系統的设计与实现
在游戏主场景中可显示人物所处的位置和实时状态,在此界面创建小地图、生命值、当前武器子弹数、灵魂收集度和作者信息五个模块。当人物移动、生命值、武器、子弹数和灵魂收集度发生变化时,将实时反应在界面上。游戏界面模块的UI用的是Unity3D自带的UGUI来制作的。这里主要用到了guiText.material.color;设置颜色、guiText.fontSize;设置字体的大小和uiText.text;要显示的文字三个方法实现。
2.5 怪物系统的设计与实现
在导入怪物资源包,完成怪物的模型与动画设置后,通过建立一个名为CreatEenemy的C#脚本,使游戏系统能实现随机生成6种不同怪物。在定义一个随机的X轴和Y轴后,规定移动范围,使怪物能够自动巡逻,并在巡逻过程中寻找并攻击玩家所控制的狩魂猎人。当怪物与狩魂猎人在一定范围内时,怪物将对狩魂猎人进行追击。当怪物受到狩魂猎人攻击时,血量会减少,当血量为0时,调动击杀动画。为了增加游戏的挑战性和可玩性,通过建立一个名为Boss的脚本,本游戏设计了一个BOSS,消灭后可获得大量灵魂。
2.6 状态和道具系统的设计与实现
通过建立一个名为Hero的C#脚本,设定游戏角色狩魂猎人的生命值,武器,子弹数,最大生命值,最大子弹数以及拾取道具回复的生命值和子弹数,使狩魂猎人拥有初始生命值和两把武器及其对应的子弹数。在游戏过程中按E键拾取道具增加体力值和子弹数。当子弹数和生命值数达到上限时,玩家将无法拾取道具,实现的部分代码如下:
void OnTriggerEnter(Collider other)
{//print("onTrigger");
if("Player"==other.tag && other.GetComponent
{addHpAudio.GetComponent
other.GetComponent
Destroy(gameObject); }
}
2.7 灵魂收集系统的设计与实现
游戏过程中,消灭怪物可收集灵魂,触发灵魂收集系统。该系统显示在游戏界面中,实时反馈玩家灵魂收集情况。当灵魂收集度达到100%后,玩家通关,实现的部分代码如下:
void OnTriggerEnter(Collider other)
{
if("Player"==other.tag)
{other.GetComponent
print(other.GetComponent
Destroy(transform.parent.gameObject); }
}
3 结论
本文阐述了基于Unity3D游戏引擎的第三人称射击类游戏从游戏设计到游戏实现的过程,本游戏实现了逻辑处理、基本UI、人物移动、切换武器、怪物随机生成和自动攻击等基本功能,能够使玩家在虚拟的世界中获得真实的游戏体验,得到精神上的满足。经测试游戏运行流畅。
【参考文献】
[1]翟涛.基于Unity3D的游戏智能行为体的研究与设计[D]. 沈阳师范大学,2018.
[2]张策.基于Unity3D的射击类游戏的开发研究与实现[J]. 数字技术与应用,2018,36(6):56-57.
[3]杨佩,王皓,罗文杰,高阳.HUNTBot—第一人称射击游戏中NPC的结构设计[J].计算机科学.2018,11(35):290-292.