基于Unity引擎制作塔防游戏
发布时间:2023-08-05 11:30:25
基于Unity引擎制作塔防游戏
吕学琴;苏闰;陈彦军
【摘要】塔防游戏让玩家可以在游戏中充分发挥想象,根据地形建设出不同种类的炮塔,以此来和不断涌现的敌人进行多轮的交锋.同样是近年在游戏制作界中颇为流行的Unity游戏引擎是一款可以让玩家轻松创建诸如三维游戏、立体动画等类型的综合型游戏开发工具.本论文就是基于Unity引擎制作一款塔防游戏.【期刊名称】《智能计算机与应用》【年(卷,期】2018(008005【总页数】5页(P95-99
【关键词】Unity引擎;塔防游戏;C#脚本【作者】吕学琴;苏闰;陈彦军
【作者单位】哈尔滨师范大学数学科学学院,哈尔滨150025;哈尔滨师范大学数学科学学院,哈尔滨150025;哈尔滨师范大学数学科学学院,哈尔滨150025【正文语种】中文【中图分类】TP317
1游戏制作的目标效果
塔防游戏的三大要素:敌人、炮塔、地图。本文中制作的塔防游戏设置4波敌人,每波敌人具备不同的移速和血量,消灭难度递增;设计3种炮塔,每种炮塔各有玄机并且可进阶为威力更强、射程更广的升级版炮塔;地图为15×15的网格形式,
其中包括敌人起点、终点以及敌人行进的道路。
玩家通过金币购买炮塔并安置在地图上,炮塔将自动攻击敌人。敌人将一波一波地轮番出现,每波敌人被完全消灭后才会出现下一波敌人。如果有一个敌人到达终点,游戏将宣告失败。当玩家将4波敌人全都消灭时,则判定为胜利[1]。2敌人
2.1敌人路径管理
在敌人路径上设置一些路径点用于引导敌人移动:让敌人达到固定的路径点,从而实现敌人朝着既定方向移动和转弯。2.2创建并控制敌人的移动
游戏中有若干类敌人,用不同的颜色区分。使用Sphere(球物体)充当敌人。首先创建1类敌人,重命名为Enemy1,并将Enemy1放到Start位置(敌人生成处)。当敌人和路径点很接近时,就要朝着下一个路径点移动,此处设置为:两者相距0.2个单位时,朝着下一个路径点移动。2.3创建敌人孵化器管理敌人的生成
新增另外3类敌人,分别命名为Enemy2、Enemy3、Enemy4。每类敌人有不同的生命值、移速和生成的数量。敌人将会一波一波地出现,在各波梯队之间应有间隔,例如第二波敌人应该在第一波敌人全部死亡或到达终点后才会出现。敌人生成采用协程[2]的方式实现,定义函数代码如下。1IEnumeratorSpawnEnemy(){2Foreach(Wavewaveinwaves){3for(inti=0;i<wave.count;i++){
4GameObject.Instantiate(wave.enemyPreFab,START.position,Quaternion.identity);
5yieldreturnnewWaitForSeconds(waveRate);}
6yieldreturnnewWaitForSeconds(wave.rate);}}
对waves数组进行遍历,生成每个wave(一波)中的敌人数目(wave.count)。为此使用for循环,每层循环生成一个敌人。每个敌人生成完毕后,需要暂停极短时间,即第5行。每一波敌人生成完毕后再暂停若干秒时间,即第6行。3炮塔
3.1创建3种炮台的Prefab
游戏中,玩家可以选择部署3种炮塔对敌人进行攻击。3种炮塔有自己的攻击模式,且价格不同。
3.2创建炮塔选择的UI
要实现玩家能够在游戏中创建炮塔,需要有一个UI界面供玩家选择炮台。UI上有3个按钮,代表3个炮塔。创建UI