admin 管理员组

文章数量: 1184232


2024年3月20日发(作者:adobeflash安卓版)

软件开发与应用

Software Development And Application

电子技术与软件工程

Electronic Technology & Software Engineering

基于Unity3D的游戏开发

陈阳

(南京大学金陵学院信息科学与工程学院 江苏省南京市 210089)

摘 要:本文介绍了游戏界面的设计及游戏场地、游戏视野、游戏主角的设计。

关键词:界面设计;Unity3D;游戏开发

游戏虽然益处多但是游戏的开发却并不是那么容易,工作繁琐,

门槛高等一系列问题阻碍着游戏的发展,而Unity3D的出现大大改

变了这一现状,大到大型3D游戏,小到手机

2D小游戏都可以使

用Unity来开发,

Unity有着跨平台性,一次编码可在多个平台同

时上线,操作简单,以及省时省力成为了许多开发商的最优选择。

1 游戏界面设计

1.1 游戏界面总体设计

游戏界面分为三类,开始界面,游戏中界面,和结束界面。界

面的设计相对简单,重点放在游戏的内容,游戏界面流程图如图1

所示。

1.2 游戏界面详细设计

1.2.1 开始界面的设计

游戏开始界面是一张比较炫酷的坦克大战海报,上面分布着两

个按钮,一个是开始按钮,另一个是游戏规则介绍按钮,开始按钮

点击后进入游戏界面,规则按钮点击后进入规则介绍界面。游戏介

绍界面分布着三个按钮,和图文讲解,界面清晰内容一目了然,左

右箭头则是四页规则翻页使用,右下角是一个返回按钮,点击可以

返回游戏开始界面。Play下的OnClick及代码如图2所示。

1.2.2 游戏中界面的设计

游戏中的界面设计主要说的是坦克身上的画布以及上面的内

容。

首先在坦克上添加一个画布(Canvas

),然后在画布中添加

三个silder分别是HealthSlider,

AimSlider,Flash,分别是生命的

显示,蓄力攻击箭头的显示和闪现技能的显示,每一个slider都有

FillArea和Fill

,分别为填充的区域和填充的内容,生命的填充区域

是一个圆环,填充内容是绿色,攻击箭头的填充区域是长方形,填

充内容就是箭头本身,闪现技能填充区域为正方形,填充内容为闪

现技能本身。

Slider中的value是一个滑动条,改变其量可以改变填充物的

填充程度,这就是实现生命显示、箭头显示和技能CD显示的关键

所在。当Value

为0时填充物为空,当Value为1时填充物为满。

fill中的image下的image type是控制填充物填充的方式,生命

和技能填充的方式相同都是按照360旋转填充所以将fill method

择为Redial360

,而攻击蓄力的显示则不同是同一方向的出现和消

失,所以选择的是sliced。

1.2.3 游戏结束界面的设计

结束界面制作的比较简单,使用的只是text的显示和点击。

当玩家一方的坦克被击中扣血死亡时,屏幕中央显示出图2-2-7

的文字,并且Restart是可以点击的,点击之后返回到开始界面,

winner后面的文字内容根据坦克的死亡而改变,

Player1死亡则显

示Winner

:Player2,Player2死亡则显示Winner:Player1。将这些

文字赋在相机上的原因也很简单,因为我们制作的相机是可以根据

两坦克的距离改变视距,如果将文字放在其他地方则无法做到坦克

死亡时文字显示在视野的正中央,从而影响我们的观察。

2 游戏设计

2.1 游戏场地设计

游戏场地鸟瞰图如图3所示,游戏场地内的物体用

3dsMax制

36

图1:游戏界面流程图

图2:Play下的OnClick及代码

图3:游戏场地鸟瞰图

作后拖进Unity3d内进行布局,制作场地的过程也是十分漫长,需

要我们用3dsMax一点点将场景中的物体制作出来并且做到符合实

际,这样做出的游戏更加真实。当然这些物体制作出来时是没有颜

色的,就需要我们制作材质球为这些预制体上色。

场地内包含灯光,用于照亮整个场地,还有仙人掌、岩石、树、

建筑、地板等物体,这些物体都是3dsMax制作的,并用材质球赋

了颜色,且均添加了刚体组件,使得坦克可以和这些障碍发生碰撞。

电子技术与软件工程

Electronic Technology & Software Engineering

场地还赋予了生成血包以及护盾的脚本,并将血包和护盾作为预制

体赋值到脚本中。生成血包和护盾时,给予一定的力,使得他们在

原地旋转起来便于观察也使得物体赋予了生命。

2.2 游戏视野跟随设计

每一个游戏都有自己独特的视野角度,而我的这款坦克大战视

野也比较独特,因为场地大小的缘故,如果将整个场地都放置在视

野之中,场地中的物体会显示非常小,不利于观看和游戏,这就需

要我们来控制相机的视距来做到当两位玩家操控坦克时,我们的视

野也随之而改变。将玩家的坦克预制体赋予脚本之上,用于监控坦

克之间的距离来计算视距大小。当两坦克距离越远,相机视距离得

也越远,坦克距离越近,相机视距离得也越近。当两坦克距离大于

或者小于一定值时,相机视距便会固定不动。我还将游戏的背景音

乐放置在相机之上,当游戏运行时背景音乐自动响起。

2.3 游戏主角坦克设计

2.3.1 主角移动设计

这便是本款游戏的两位主角,玩家1和玩家2

,两个坦克的控

制方式,攻击方式,以及血量的减少增加方式均是相同的,所以二

者使用的是相同的脚本,用代码将坦克进行编号来区分二者。这样

减少了代码的数量也减轻了机器运行的压力。坦克行驶和代码如图

4所示。

2.3.2 主角攻击设计

主角的攻击方式分为两种,一种是普通攻击,一种是蓄力攻击

普通攻击和蓄力攻击的区别在于两者的攻击距离不同,两种攻击都

是一种抛物线的方式来击出,坦克炮口处有一个空物体45度斜向

上,每次按下攻击按钮时子弹在这个空物体处生成并跟随物体45

度向上倾斜,然后赋予子弹一个向前的力让子弹飞出,子弹受到重

力的作用会形成一个抛物线的轨迹。

2.3.3 主角的生命设计

坦克生命控制的脚本中,TankExplosion

是坦克被销毁时产生的

爆炸特效,TankBreakAudio

是坦克被销毁时爆炸的音效。HpSilder

是血量圆环Fill是圆环的图片。CureP是治疗时产生的特效预制体,

moxinghudun是护盾的预制体。

坦克的生命显示为一个圆环在坦克正下方,当坦克受到伤害后

血量低于一定值时血条颜色会发生相应改变,血量高于75%是呈

现绿色,表示坦克健康,当血量在75%-25%之间时颜色变成黄色,

表示坦克血量较低,当血量低于25%时颜色变为红色,表示坦克

处于危险中。如图5所示。

当坦克触碰到场地中产生的血包时会恢复一定量的生命值,并

产生恢复生命特效。也会根据血量的值改变相应的颜色。而当玩家

触碰到护盾时则会为玩家产生一个可以保护坦克三次不受伤害的护

盾,并且每次受到攻击,会减少一个护盾。护盾和血包都是随时、

随地出现在场地中,并且一段时间未被坦克触碰会自动销毁。如图

6、图7所示。

2.3.4 主角技能设计

当游戏开始的时候,主角的主动技能闪现开始CD

,并在坦克

一侧显示闪现技能的CD效果,当闪现技能图标完全显示的时候表

明技能已经CD完成可以使用,使用闪现技能之后,坦克会往前位

移一段距离并且可以穿越障碍,并在使用技能的位置生成一个闪光

特效,然后重置CD和技能图标。因为闪现技能的冷却时间比较长,

所以释放的时机显得比较重要,闪现技能可以用来穿越障碍,比如

被敌人追到死角的时候可以用闪现穿越障碍逃生。如图8所示。

2.3.5 主角死亡设计

当坦克受到伤害,并且血量降低到0以下时,坦克死亡,并在

原地生成一个爆炸特效和音效,并在此时取消相机的控制和坦克的

控制,进入结束页面,结束页面显示着胜利的玩家以及一个重新开

始的按钮,点击重新开始按钮后,进入新一轮的竞技中。

3 结束语

Software Development And Application

软件开发与应用

图4:坦克行驶和代码

图5:血量改变图6:恢复特效

图7:护盾

图8:技能展示

因为多年对游戏的热爱,自身又是计算机专业,让我对这次的

课题充满了想法,选择了许多人童年的回忆“坦克大战”。这次设

计我使用的是Unity软件和C#语言,

通过学校教学与自我拓展摸索,

在整个过程中锻炼了我自学的能力,也学到了新知识和新技术。让

我一定程度的了解游戏开发的过程,和游戏开发的不容易,同时也

明白了坚持的重要性。不管是一名学生还是一位社会人士,自学都

是非常重要的一种技能,这次的游戏设计让我学习到了许多unity

的知识我相信在将来的工作中也会是一种有效的技能。

参考文献

[1]任建邦.基于Unity3D的手机游戏客户端的设计与实现[D].

北京交通大学,2013.

[2]伍传敏,张帅,邱锦明.基于Unity3D的FPS游戏设计与开发

[J].三明学院学报,2012,29(2):35-40.

[3]李崴.中国动漫游戏产业发展现状与对策分析研究[J].南昌

教育学院学报,2011,026(004):191-192.

[4]张天雪.区域教育均衡发展:立场与路线[J].教育发展研

究,2013

[5]陈乐,汤龙梅,陈永瑞.基于Unity的iPhone游戏开发概要[J].

科技视界,2013,000(016):18.

[6]王树斌.浅析Unity3d开发游戏流程及常用技术[J].电脑知

识与技术,2012,008(022):5351-5352.

[7]付国成.基于J2ME的手机2D动作类游戏引擎的设计与实现[D].

北京交通大学,2014.

作者简介

陈阳(1994-),男,福建省屏南县人。南京大学金陵学院信息科

学与工程学院计算机科学与技术专业本科在读。学号:**********

006。

37


本文标签: 游戏 坦克 界面 技能 显示