You are on page 1of 3

计算机应用 信息技术 与 信息化

基于 Unity3D 彩虹消消乐小游戏设计
史 甜 1 郑凯东 1
SHI Tian ZHENG KaiDong

摘 要 《彩虹消消乐》是一款消除类游戏,是基于 Unity3D 设计了 Cube 的彩虹色颜色渐变和 UGUI 下的四个游


戏场景,利用 C# 脚本实现游戏本身逻辑,即 Cube 的移动、Cube 的分割、Cube 的结束和判断,通过粒

子系统实现游戏运行的动态星空背景,给玩家带来更深的视觉感受。然后实现 Cube 下落,重叠得到的

积分。整个游戏的功能可以保持大量快速的输入输出,给玩家营造紧张的氛围,激发玩家的好胜心,提

高游戏的可玩性和乐趣性。经过简单的测试,游戏可打包发布成 .apk 格式到移动端。在不同型号的手

机上正常运行。

关键词 Unity3D;消除类游戏;粒子系统

doi:10.3969/j.issn.1672-9528.2021.08.041

0 引言 加速度、自旋周期、生命周期等属性。而一个粒子需要具有
哪个属性,主要取决于该粒子系统最终要去模拟什么。在计
在科技的快速发展下,手机成为很普遍的产物。从青少
算机应用中也是经常使用粒子系统去模拟一些自然现象或比
年到老年人几乎人手智能手机。因疫情原因,大大推动了游
较抽象的视觉效果,比如:瀑布、雪、烟雾流星等。
戏行业的发展。移动端游戏更是在近几年快速发展,得到很
粒子系统是动态变化的,并且粒子系统里的每一个属性
多上班族的热捧。本文设计并且开发了一款基于 Unity3D 专
都是关于时间 t 的函数,在虚拟时间的流逝下,总有新粒子
业游戏开发引擎下的消除类游戏——《彩虹消消乐》。它是
的产生和旧粒子的死亡。每个粒子都要经过产生 - 活动 - 死亡
一款移动端游戏,其使用炫酷的天空盒和粒子系统实现的消
的过程。总体会随着时间的变化而变化。主要包括以下过程:
除特效以及消除时的特效声音因完美重合逐渐生高阶音,营
起初先产生大量的新粒子加入粒子系统,再更新现有粒子的
造一个紧张刺激的氛围。在知觉心理学中有句话“眼睛喜欢
属性,再删掉生命周期已经终结消亡的粒子,最后绘制出设
走捷径”,所以其在视觉设计上具有彩虹颜色的逐渐过渡,
置好属性的粒子,形成完整的粒子效果进行展示。
给人视觉冲击,以抓住玩家眼球和对游戏的兴趣。
2.2 UGUI 插件
1 游戏开发思路
绘制 UI 界面,好的 UI 界面可以让游戏体验感更加舒适,
游戏的制作首先在 Unity 中搭建一个基础 Cube 以及场 简单,方便。UGUI 是 Unity 官方推出的比较新的 UI 系统,
景的建模,接下来再在 Unity 中调整 Cube 属性,具有合理 在 Unity4.6 后,UGUI 被集成到编辑器中,方便利用。相比
[1]
的位置和效果。再使用 C# 脚本进行游戏基础逻辑的制作 。 于以前的 GUI,UGUI 有自己的特点:灵活、快速、可视化。
再进行场景搭建天空盒的添加,粒子系统实现的消除特效、 在使用代码的情况下,可以简单快速地建立起一套 UI 界面。
添加游戏效果音乐。 UGUI 里面包括大量控件,如按钮控件、滑动条、开关控
在最后进行游戏 UI 的设计交互,再测试其 Cube 下落速 件等等,只需要拖拽,设置属性参数就可以进行界面设置。
度以及粒子速度等,测试完毕后打包发布成 .apk 格式到移动 在性能方面,同样的界面 UGUI 的 DrawCall 比 NGUI 高 2 个,
端。 但是内存和安装包都比较小。综上,UGUI 的使用可以快速建
立起属于自己的一套 UI 系统,简单方便。
2 关键技术
3 设计与实现
2.1 粒子系统简介
粒子系统是目前主要用来解决按一定规则运动的微小物 3.1 功能确定
质在计算机上生成和显示的问题。而粒子系统是通过许多的 游戏玩家可通过设置自行调整 Cube 移动的速度,调整
粒子组成的,而每一颗粒子都包括大小、位置、纹理、速度、 游戏难度。玩家通过控制点击屏幕使 Cube 尽可能多的与底座
的 cube 落在同样位置,若完全贴合,则积双倍分数;若贴合
一部分,则积一分;若没有贴合,则游戏结束。结束后可选
1. 西安石油大学计算机学院 陕西西安 710065

140 2021 年第 8 期
信息技术 与 信息化 计算机应用
择再来一局或退出,积分越高越好。 效果也是和 UI 的背景相统一。实现星空的效果。首先将需要
的资源导入项目,将 Main Camera 的 Background 改为黑色,
3.2 游戏逻辑概述
将摄像机渲染的图层改为 BackEffect,是我们即将制作的图
游戏逻辑组成图如图 1 所示。
层。创建一个 Particle System, 将 Start Speed 设置为双
彩虹消消乐
常数间随机,即 0.05 ~ 0.2 之间。在 Shape 中设置形状为
摄像机的跟随 BOX, 对 其 Scale 设 置 为 100×50×5。 再 设 置 Emission 的

添加粒子特效
添加天空盒
Cube

随单位时间产生的粒子数为 50。而对新产生的粒子的 Start


颜色变化

添加音效
的移动切割

Size 也设置为双常数间随机,即 0.5 ~ 2。在 Render 中改


变粒子的渲染材质,设置为导入的素材。再改变 Color over
Lifetime 为双渐变间随机在 #00FFFF 和 #FFFFFF 之间。再将
Size over Lifetime 的 Particle System Curves 手动设置
图 1 游戏逻辑组成图
为波形曲线。星空特效大部分属性已经设置完成,其余属性
该 游 戏 在 逻 辑 功 能 上 主 要 有 cube 移 动、cube 分 割、
相对微调,即可出现星空效果。
cube 重置三个部分。
相比市场上此类游戏的整体界面显示都比较单调,使得
Cube 移动是指创建一个起始的顶层 cube,在游戏开始后,
玩家在长时间玩游戏上产生视觉疲劳,游戏整体的创新点在
点击屏幕,使移动的 cube 停止,落在起初 cube 上,下一次
于游戏背景使用粒子系统实现星空的效果和游戏 Cube 上实现
移动是将这一次的 cube 当作顶层 cube,继续进行,直至游
比较平滑的渐变色的显示。背景动态的粒子效果和彩虹渐变
戏结束。
色的显示一方面可以干扰玩家进行游戏难度的提升,另一方
Cube 需要两个方向移动,即定义一个枚举类型,分别记
面可以吸引玩家眼球,对游戏产生持续性的兴趣。
录两个方向的运动。Cube 在左右移动和前后移动时都会有边
在考虑顶层 cube 颜色渐变时,我们首先考虑到颜色是
界值。当 cube 移动到某个定值后,则使移动的 cube 的方向
由红、绿、蓝三个基础色混合获得。可通过 RGB 三通道的
进行反向移动。可通过定义一个布尔值来表示,反方向时,
sin 函数的变化值来获得颜色渐变的效果。实现红绿蓝三种
让 move= -move 即可。前后方向同理如此。同时,在产生新
颜色的过度。而三个函数的相位差则差 120 度。其关键代码
cube 时,将前后方向和左右方向进行交叉运动。
如下:
Cube 分割时和游戏结束的判断是类似的,需要将移动的
Color ColorChange(float h)
cube 落在顶层 cube 上方的部分留下来,另外一部分切割掉。
{
判断游戏结束时,说明图如图 2 所示,当移动的 cube
float r = Mathf.Sin(h);
的后方边缘位置大于顶层 cube 的前方边缘位置,或移动
float g = Mathf.Sin(h+120*Mathf.Deg2Red);
cube 的前方小于顶层 cube 的前方边缘位置小于顶层 cube
float b = Mathf.Sin(h+240* Mathf.Deg2Red);
的后方边缘位置,则游戏结束。同理在左右方向,移动的
}
cube 左方边缘位置大于顶层 cube 的右方边缘位置或移动
由于这样的方法在三条 Sin 函数相交点的值偏大,导致
cube 的右方边缘位置小于顶层 cube 的左方边缘位置,则游
Cube 的颜色在变化的时候比较突兀,不平滑。所以决定使用
戏结束。
Shader 插值函数来实现。
底层cube前方边缘位置
lerp(a, b, w);
a 与 b 为同类型,即都是 float 或者 float2 之类的,那
顶层cube前方边缘位置
lerp 函数返回的结果也是与 ab 同类型的值。w 是比重,在 0
到 1 之间当 w 为 0 时返回 a,为 1 时返回 b,在 01 之间时,
底层cube后方边缘位置
以比重 w 将 ab 进行线性插值计算。得到的效果图如图 3 所示。
顶层cube后方边缘位置

图2 cube 分割说明图

摄像机的位置需要随着顶层 cube 上移而上移,需要将


摄像机的位置一直保持在顶层 cube 的斜上方 45 度,让玩家
的视角可以清晰准确的看见顶层 cube 的移动。

3.3 星空背景特效及颜色渐变
星空背景主要是通过粒子系统实现的,想要实现的粒子 图3 shader 的渐变色图

2021 年第 8 期 141
计算机应用 信息技术 与 信息化

3.4 UI 界面制作与场景渲染 表1 功能测试


该 游 戏 UI 界 面 的 制 作 主 要 通 过 unity3D 自 带 的 工 具 功能名称 操作 预期结果 结果
UGUI 完成 [2]。该游戏主要有四个 UI 界面,游戏进入界面, 正确弹出选择其他应用
开始界面 点击分享按钮 测试成功
游戏设置界面,游戏运行界面和游戏结束界面。其次还包括 的界面,分享状态正常

难度调节界面、音量调节界面和意见反馈界面。 正确弹出游戏难度调
设置界面 点击设置按钮 测试成功
节、声音调节按钮
(1)游戏进入界面的场景建模。游戏进入界面包括: 主音量向左可调小、向
设置界面 滑动音量滑动条 测试成功
开始按钮、设置按钮、退出按钮、分享按钮、音量调节按钮、 右可调大
可重新进入游戏运行界
意见反馈按钮、界面背景、游戏名称文字。 结束界面 点击再玩一次按钮

测试成功

添加一个 Canvas,选择 UI 下的 image,将选用的图片 结束界面 点击退出游戏按钮 可退出至手机主页 测试成功


通过资源下的导入新资源导入,再将该图片在 Inspector 页
表2 游戏内存占用测试结果
面 中, 修 改 它 的“Texture Type” 属 性 为“Sprite”, 就
可以在 image 的 Source image 中选择该图片。开始游戏、 测试设备 内存占用
HUAWEI nova7 3%
设置游戏、退出游戏分别由 OnMouseEnter、SettingGame、
小米 k20 pro 5%
OnMouseExit 函 数 实 现, 通 过 设 置 Transition-Color Tint iPhone 12 2%
属性下的 Hightlighted Color 设置悬浮时高亮状态,设置
Pressed Color 设置为按下时的状态。 4 总结

(2)游戏设置界面的场景建模。游戏设置界面主要包 在一些现有热门手机游戏的带动下,手机游戏的快速发
括提示框、关闭按钮、文本、滑动条、开关按钮等。 展在游戏行业已占据一席之地。而 unity3D 游戏引擎跨平台、
新建 Canvas 和 Slider,展开 Slider,给 Handle Slide 易上手的特点奠定了在手机游戏上发展的基础。通过手机游
Area 的 Handle 和 Fill Area 的 Fill 分别换 Source image, 戏数据的对比,消除类游戏的受欢迎度还是比较高的。这次
使界面更好看。同时给 Fill 的 Color 选择黄色,调整 Slid- 在疫情期间通过学习 unity3D 游戏引擎设计出来的消除类小
er 的位置。新建脚 SliderChange, 用于初始化和更新。将该 游戏,正好碰上了游戏行业蓬勃发展的高潮,将会有很好的
脚本拖到 Slider 上。 发展空间。
(3)游戏运行界面的场景建模。游戏运行场景主要包
括分数文本、和背景的粒子效果的显示,和主要游戏对象 参考文献:
Cube。 [1] 王涛 . 基于 U3D 和 kinect2.0 北极熊互动游戏的设计与实
对文本 Score 的积分与顶层 Cube 的新创建是同步的, 现 [J]. 自动化技术与应用 , 2018,278(8):105-110.
只要 Cube 完全成功叠加一次,Score.text+2, 只叠加一部分, [2] 郭欣桐 . 基于 Unity 的休闲益智类游戏设计与开发 [J]. 电
则 Score.Text+1。否则,游戏结束。 子技术与软件工程 ,2021(1):34-36.
(4)游戏结束界面的场景建模 [3]。游戏结束界面包括: [3] 周正 , 司占军 . 基于 Unity3D 的冒险闯关类游戏的设计与
再玩一次按钮、分数显示文本、游戏结束文本、提示框和退 实现 [J]. 电脑知识与技术 ,2020,16(21):90-91.

出按钮。 [4] 张胜男 , 司占军 . 基于 Unity 3D 的寻宝游戏的设计与制作

游戏结束界面主要显示所得分数和再玩一次和退出游戏 [J]. 电脑知识与技术 ,2020,16(22):37-39.

三部分功能。通过调用 GUI.Label() 显示游戏的分数。而游 [5] 四 五 二 十,Unity 快 速 上 手 系 列 之 3:《 反 应 堆》[EB/

戏结束和再来一次分别通过脚本 Quit 和 Regame 实现。 OL]. (2018-08-30)[2021-05-15].https://zhuanlan.zhihu.com/


p/38359628.
3.5 测试及改进
对该游戏系统的进行测试,主要从游戏的功能测试和内 【作者简介】
存两个方面进行测试。在功能测试上采用黑盒测试对游戏上
史甜 (1997—), 女,陕西西安人,硕士研究生,研究方向:
的功能模块的界面显示进行测试,比如:开始游戏、设置界面、
可视化计算;
再玩一次进行详细的测试。功能测试结果如表 1 所示。游戏
郑凯东 (1964—), 男,广东汕头人,副教授,研究方向:
内存占用测试结果如表 2 所示。从测试结果可以看出该游戏
图形学与虚拟现实、程序设计、计算机基础教育。
各个功能模块已经实现,内存占用情况受 CPU 型号的影响,
(收稿日期:2021-06-07 修回日期:2021-06-29)
CPU 性能越好占用率越低,满足游戏发布的要求。

142 2021 年第 8 期

You might also like