基于Unity3D的坦克大战游戏设计与实现
2017-09-08马晓萍刘静
马晓萍+刘静
摘要:针对传统坦克大战游戏中子弹单枚发射, 血量为零时坦克直接消失,为增加游戏趣味性,本设计以Unity 5.4为开发平台,选择C# 作为脚本语言,在传统游戏基础上设计并实现了增加子弹发射数量、坦克损坏后消失两个趣味、仿真效果。
关键词:Unity;脚本语言;坦克游戏
中图分类号:TP319 文献标识码:A 文章编号:1007-9416(2017)06-0168-01
1 Unity
Unity5是一款利用新增的编辑器功能集,具备了跨越23个平台的多平台交互式游戏 引擎,Unity Cloud Build 服务,使得开发者通过云计算可以更有效的进行游戏和应用的开发[1]。該系统自带人物模型,粒子特效,可视化编程解决方案,天空盒、地形、树等丰富的资源包[2]。Unity 有内置脚本资源包,集成了MonoDevelop脚本编辑器,本设计以C#为脚本语言。
2 实验设计
为了让坦克大战游戏情节更好地展开,增加游戏的趣味性,本次实验在传统的坦克大战游戏基础上设计了增加子弹数量、坦克先损坏再消失两个游戏效果。
(1)增加攻击效果。根据不同玩家按下的不同按键发射子弹攻击敌方,例如按下 ENTER 或者回车键,即可发射出已经设置好的相应子弹数目。
(2)被攻击坦克先损坏,再消失。传统游戏版本中,当被攻击的坦克的血量变为零时,该坦克会立即自动消失。为了能更加逼真,血量为零后,先出现一个被损坏的坦克,2秒后再消失。
3 实验流程
3.1 模型导入与创建
(1)实验中直接导入fbx格式模型[3]。
(2)将所需物体从原有的models中的设置为预置物体,并拖放到prefabs中,使用时将预置物体挨个拖拽到场景中进行布置,实现预置物的实例化。
3.2 脚本编写
3.2.1 增加子弹数目
在inspector中修改tank 的TankHealth 面板属性 explosion prefab 的值为BustedTank。将该预置物体拖至目标坦克上,当该坦克被攻击血量达到零时,不会立即消失,先出现破损坦克BustedTank预置物,该实验中预设2秒后再消失,增加了视觉上的直观性和趣味性。
4 结语
Unity是一款专业跨平台虚拟现实及专业游戏引擎,其增强的图形功能和可扩展编辑器使得游戏开发灵活,周期短,能轻松实现虚拟仿真内容。本案例通过测试游戏的基本操作,子弹的发射、爆炸,坦克的损坏消失功能,基本达到了预期效果。
参考文献
[1]Unity Technologies. Unity5.x从入门到精通[M].北京:中国铁路出版社,2016.
[2]张敏.基于Unity 3D的游戏的设计与实现[J].计算机光盘软件与应用,2014,269-270.
[3]李慎亮,司占军.基于Unity平台的三维坦克游戏设计与实现[J].软件导刊,2015,14(8):152-154.endprint