APP下载

基于Unity3D的3D坦克大战研究

2018-08-22刘鑫鹏

东方教育 2018年14期
关键词:射击游戏

刘鑫鹏

摘要:随着最近年来手机的快速普及和手机质量的提高,越来越多的移动端游戏也融入到我们的学习和生活中。相比PC端游戏,移动端精简,也由于移动设备没有太多的限制,使得人们能够不论何时何地都能随意的体验互联网的方便与快捷,也可以通过互联网与朋友进行游戏互动,然而移动端是无法像PC端那样将游戏的各种细节体现的美轮美奂的。

本设计项目是基于Unity3D的坦克大战3D版。如今3D游戏美轮美奂,特效、模型的精致和逼真是有目共睹的。本次的毕业设计是面向PC端玩家的单机游戏。本次毕设以Unity3D作为开发引擎,使用C#作为开发语言,主要游戏功能有:关卡选择、背包&商城游戏、升级强化角色、任务游戏、游戏角色操作、敌方AI操作等功能模块,数据处理方面使用XML解析技术处理游戏数据,使用对象池技术对反复使用的游戏物体进行资源回收避免重复的创建和销毁造成资源上的浪费和内存碎片的增加,进而提升游戏运行的流畅性和体验感。

关键词:Unity;游戏;射击

由于Unity是可以跨平台发布的,这样的话不管是发布PC端还是移动端都是十分方便,因此基于Unity3D的坦克大战3D版能够借此便利给玩家们带来快乐。该游戏运行在PC上,目的是在通过Unity游戏引擎开发的一款游戏,应用此引擎开发的游戏能够跨平台发布,给游戏的移植带来便利,也由于PC仍是许多3D游戏的游戏的主流运行环境,在PC上3D游戏可以达到相对于PC较好的效果。

一、游戏需求分析

不少的PC端游戏也是通过对游戏的内容的压缩即可在Android上面运行,此外使用PC进行游戏开发效果也相对较好,能够用最优的环境对游戏进行开发设计。这是Android所不能拥有的。游戏的趣味性可以增加游戏的体验感,给用户带来趣味。另一方面Unity3D支持跨平台部署,PC端开发的效果相对Android端较好,也为以后就业学习跨平台部署提供实践打下基础。

(一)可行性分析

基于Unity3D的坦克大战3D版对开发设备的硬件要求不高,一台装有Unity和VS2013普通Windows计算级能够支持开发。PC端游戏设计效果相对Android比较好,如果需要安卓部署则进行对游戏的UI和操作上的调整即可使用Unity跨平台打包部署,十分方便

(二)游戏需求分析

根据玩家的游戏需求进行分析,主要按照游戏运行需要实现的功能模块进行划分。针对3D坦克大战游戏运行部分,需要实现的主要功能模块为:玩家游戏操作功能、AI行为功能、背包&商城功能、游戏进入&退出功能、任务生成和完成功能、游戏暂停和继续功能,因此基于Unity3D的3D坦克大战应该具备如下功能:

1.玩家游戏操作

1)移动:玩家按下相关键位实现移动功能。

2)技能:玩家控制的坦克可以释放相关的技能。

3)受伤:玩家受到敌方攻击会对生命值进行扣除。

2.AI行为功能

1)行为:根据AI等级的不同产生不同的行为以此来增加游戏的趣味性。

2)受伤:敌方AI受到玩家攻击会相应的扣除生命值。

3.背包&商城功能

1)背包:查看拾取的物品并可以使用和丢弃。

2)商城:购买相关的物品。

4.游戏进入&退出功能

1)游戏进入:点击进入游戏按钮,执行游戏加载操作。

2)游戏退出:退出游戏。

5.任务生成和完成功能

1)任务生成:根据玩家点击随机生成任务,并存储到相关XML文档进行数据处理。

2)任务完成:完成任务,进行相关的数据处理,并给予玩家相应的奖励。

6.游戏暂停和游戏继续

1)游戏暂停:游戏进入暂停状态。

2)游戏继续:从游戏暂停状态切换至游戏正常运行状态。

二、游戏开发工具和相关技术

(一)Unity3D游戏引擎

Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。其编辑器运行在Windows 和Mac OS X下,可发布游戏至Windows、Mac、Wii、iPhone、WebGL(需要HTML5)、Windows phone 8和Android平台。也可以利用Unity web player插件发布网页游戏,支持Mac和Windows的网页浏览。它的网页播放器也被Mac 所支持。开发语言支持C#作为脚本语言进行游戏开发。

(二)AssetBundle资源打包

通过AssetBundle将Unity3D游戏资源打包,可以避免因为游戏自带资源过大而导致游戏的平台部署生成的.exe文件过于巨大而打包过程进展缓慢,同时通过AssetBundle技术可以实现在相对路径下的资源加载,避免了误删游戏资源导致出错和游戏资源打包带来的不便,还能通过对现有Assetbundle进行实时修改以实现游戏资源的更新。

3)对象池技术在游戏反复的创建和销毁同一个经常使用的游戏物体会给游戏运行带来内存上的大量碎片、運行上后期的严重卡顿等不良效果,对象池技术可以将重复使用的游戏物体进行统一管理,不必进行大量的创建和销毁,避免重复创建和销毁带来的卡顿和性能上的恶劣影响。

三、总结

玩家在游戏中可以通过对游戏的体验来给自己进行适当的放松,也可以对这个项目进行功能实现的研究。如单例模式管控UI界面的功能,实现相关UI界面的功能将实例化的单例对UI功能进行使用。对象池技术控制一些大量使用又不宜销毁的游戏物体,避免重复生成销毁造成内存碎片问题。相信对于以后的工作也有较大的帮助。由此可见这次的毕设是具有很大实际应用和学习的意义。

在Unity3D游戏开发过程中,基本实现了游戏运行应有的相关功能,还实现了任务功能,相比以往单调乏味的通关游戏也是增加了趣味性,UI设计也相对比较精简,显得比较友好。

参考文献:

[1]罗培羽. Unity3D网络游戏实战 [M].机械工业出版社 2016.

[2]宣雨松. Unity 3D游戏开发 [M].人民邮电出版社 2012.

[3]王洪源. Unity3D人工智能编程精粹 [M].清华大学出版社 2014

[4]程明智. Unity游戏开发技术 [M]. 国防工业出版社 2012.

猜你喜欢

射击游戏
画与理
打靶训练
游戏
数独游戏
疯狂的游戏
爆笑游戏
第八章直接逃出游戏
第八章 直接逃出游戏
测测你的智力