基于Unity3D的射击类游戏设计研究

2018-11-01 03:04王莉莉周灵王薪州
电脑知识与技术 2018年19期

王莉莉 周灵 王薪州

摘要:随着数字媒体技术的发展,Unity3D引擎作为一款跨平台游戏引擎,已被广泛应用于游戏设计开发中。该文以《单兵作战》第一人称视角射击游戏为例,介绍基于Unity3D引擎的射击类游戏设计实现过程,主要包括场景系统、角色系统、道具系统、状态系统、交互系统和得分系统等,经测试游戏运行流畅。

关键词:射击类游戏;电子竞技游戏;Unity3D引擎

中图分类号:TP391 文献标识码:A 文章编號:1009-3044(2018)19-0104-03

1 引言

随着计算机技术、网络技术的发展,电子竞技产业已经受到世界各国的广泛关注。以《穿越火线》《CSGO》《绝地求生》等为代表的FPS(射击)类电子游戏,每年通过举办国际性赛事吸引全球游戏迷强烈关注。据相关数据预测,到2019年我国电子竞技用户规模将达4.3亿人,他们的年龄大多是25岁以下,其中军事电子游戏因其独特的竞技性广受年轻一代的青睐。

电子竞技游戏不仅是一种基于互联网平台的以智力对抗游戏为内容的体育活动,更是一种青少年普遍认同的文化娱乐形式,已成为一种新兴文化的传播媒介。设计开发一款能够开展国防教育和军事文化传播的电子竞技游戏是非常重要的课题。本文以Unity3D为开发引擎,以《单兵作战》游戏为例,介绍了军事类题材,射击类游戏的设计研究过程。

2 Unity3D引擎简介

Unity3D是由Unity Technologies开发的一款多平台综合游戏引擎,允许用户轻松创建交互式内容,如3D游戏、建筑可视化、三维动画等。它类似于Director、BlenderGame Engine、Virtools或Torque Game Builder等利用交互式图形开发环境为主要形式的软件,其编辑器可运行在Windows和Mac OS X操作系统下,可以发布游戏到Windows,Mac,Wii,iPhone,WebGL(需要HTML5),Windows Phone 8和Android平台。还可以使用Unity Web Player插件发布网页游戏,并支持Mac和Windows的网页浏览。因为这些优点,使得越来越多的游戏开发人员选择Unity3D这款游戏引擎。本文通过Unity3D引擎实现了场景搭建、游戏交互等。

3 游戏整体设计

3.1 游戏策划

游戏场景是热带雨林,玩家以解放军士兵身份被派遣至此。玩家进入游戏,自带初始体力值和弹药数,利用拾取道具增加体力值和弹药数。按Q键拾取弹药箱和补给箱,每拾取一个弹药箱,补充50枚弹药;每拾取一个补给箱,体力增加30。弹药的峰值为200,体力的峰值为100,当弹药数和体力数达到峰值时,拾取道具,弹药数和体力值均不会增加。当士兵的体力值大于0时,士兵的体力值会因受到攻击而减少。当体力值为0时,角色死亡,跳转到重新开始界面。

敌人有三种类型,一血型、二血型、三血型,分别能够承受1、2、3枚子弹。场景中的敌人是随机生成的,根据游戏难度,简单、困难、专家,敌人初始数量分别为200人、300人和500人。当敌人数量少于160人时,系统会自动增加敌人。敌人具备智能自由行走功能,在行走中寻找玩家所控制的士兵,当士兵与敌人在一定范围内,敌人会追击士兵,并调用攻击动画对士兵进行攻击。当敌人受到士兵攻击时,血量会减少,当血量为0时,调用倒地动画。子弹是否打中敌人,涉及碰撞检测,当子弹打中敌人时,敌人血量减少或者死亡,子弹销毁,当子弹并未打中敌人时,子弹自动销毁,释放内存,敌人血量不变。

得分系统的设置,可增加游戏的竞技性。得分系统显示在游戏中和游戏结束时,实时提醒玩家得分情况。当系统中士兵体力值为0时,调用游戏结束界面,显示得分系统。

3.2 游戏功能模块设计

本游戏主要包括游戏主界面、场景系统、角色系统、状态系统、道具系统、交互系统、得分系统五部分。游戏功能结构图如图1所示。

4 游戏具体实现

4.1 游戏主界面实现

在Unity3D环境中,通过Image设置游戏主界面背景图片,设置三个按钮。设置游戏难度选项卡、音量调节功能,设置摄像机。针对三种难度,编写代码控制敌人初始数量、移动速度、血量等,完成主界面设计,如图2所示为游戏主界面。下面给出游戏难度为“简单”的相关代码:

if (toggle.name == "简单") {Debug.Log("okokokok");

PlayerPrefs.SetFloat("Count_Enemys", 200f);

PlayerPrefs.SetFloat("moveSpeedX_Enemys0", 0.5f);

PlayerPrefs.SetFloat("moveSpeedX_Enemys1", 1f);

PlayerPrefs.SetFloat("Life_Reduce", 0.0001F); }

4.2 游戏场景设计

首先创建一个地形,调整地形大小,修改平面大小,调整地势的起伏,给地形贴材质、刷树木、花草、石子等,添加天空盒,创建好基础地形。再添加一些岩石、古遗迹模型、添加合适的音乐等使得地图更加逼真。如图3所示为游戏场景地形图。

4.3 游戏角色设计

游戏角色主要包括玩家控制的士兵和系统自动生成的敌人。

4.3.1 士兵角色设计

将士兵模型导入Unity3D后,通过编写代码控制其行走、奔跑、跳跃等动作,再通过设置相应的动作动画使其更逼真。士兵的移动,通过官方自带的FPSController组件来设置,可实现人物的移动方式、鼠标锁定、视角跟随、WSAD控制上下左右移动,空格跳跃等。如图4所示为人物角色属性界面。人物跑动的相关代码需单独设置如下: