基于Unity3D中C#脚本开发的飞机大战游戏设计与实现

来源 :科学与生活 | 被引量 : 0次 | 上传用户:djkangzi
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:在信息化的时代,随着人们生活水平的提高,人们对于娱乐的方式也越发丰富,而游戏则是一种深受广大人民群众喜愛的娱乐方式,渐渐成为人们生活中必不可少的一部分。本文通过Unity3D中c#脚本技术实现“飞机大战”这一实例,详细阐述开发3D飞机大战的方法和技术。
  关键词: Unity3D;飞机大战;c#脚本
  1 系统设计
  1.1 系统描述
  这款游戏主要是太空射击类游戏,在游戏中,玩家可以驾驶自己的战机,通过击败敌人来获得相应的分数,游戏过程中还可以调试飞行速度,敌人是外太空飞碟和宇宙飞船,玩家可以控制飞机向敌机开火,同时躲避伤害,以保证自己的血量安全。撞击敌人或者受到子弹攻击护甲值减一,当护甲值为0时游戏失败,玩家可以选择再来一次或者退出游戏。
  2 关键技术实现
  2.1 对象资源池化管理
  以飞机本身为例,本游戏系统的资源管控方法基于游戏物体工厂管理UI、UI面板与游戏物体的激活与失活。游戏物体工厂拥有一个工厂基类BaseFactory,实现接口 IBaseFactory并在该基类中使用对象池技术,使子弹、怪物、敌机在生成时不必反复创建和销毁对象,只需要从对象池中取出与放回对象便可节省系统资源。
  游戏物体工厂拥有一个枚举类型FactoryType,用于区分不同种类的游戏物体工厂。游戏物体工厂拥有三个工厂类GameFactory、UIFactory和UIPanelFactory继承至工厂基类,它们之间的区别是修改了在对象池获取资源时的资源路径。
  2.2 系统关键算法实现
  2.2.1碰撞检测基本原理
  碰撞检测主要是检测两个或多个物体是否相交,可以通过计算两两物体之间的位置关系进行判断。或者可以说碰撞检测主要是计算两个物体在几何空间上的重叠空间的问题。对于二维空间中的碰撞检测来说,计算量不是很大,计算过程不算复杂,因为物体都在一个平面上。但是在三维空间中就不同了,三维空间的碰撞检测要比二维中的碰撞检测复杂的多。虽然同样是由多边形构成的三维物体,但是由于增加了一个维度,使得碰撞检测的计算量大大的增加。
  碰撞检测主要检测的是三个问题。第一个问题就是两个或多个物体之间是否发生了碰撞。第二,如果发生了碰撞,那么是在什么时间发生的碰撞、碰撞的持续时间和碰撞结束的时间。第三,如果发生了碰撞,那么碰撞点在什么位置。这三个问题基本上占据了碰撞检测的全部计算量,计算过程也因此变得十分复杂。
  2.2.2基于OBB算法的碰撞检测计算
  在进行碰撞检测之前需要通过调用AddBoxCollider方法给所检测的刚性物体添加包围盒。其中刚性物体包括飞机、子弹、飞碟、敌机等实际的物体。在此以行动中的飞机为例。把玩家操控的飞机作为A物体,先通过Distance(A,B)方法计算出其他物体与A(飞机)物体距离最近的物体。如果得到的距离小于0,则说明碰撞了。如果大于0则需要利用碰撞检测技术具体计算。当得到的距离大于0时,利用OBB算法计算是否发生碰撞的规则如下所示。
  Algorithm:collision detection based on OBB
  Input:object A and object B
  Output:whether two objects collide or not at any moment
  Step1:SA←Get All Separating Axis;
  Step2:i←0;
  Step3:result←FALSE;
  Step4:do{
  1) CurrentSA ←SA[i];
  2) rA ←Get Projection on CurrentSA of A;
  3) rB ←Get Projection on CurrentSA of B;
  4) T*L←Get Projection distance on CurrentSA between A and B;
  5) If (T*L >rA+rB)
  {  return  result←FALSE;
  i++;  }
  Else  return result ←TRUE;
  }while  !result
  3 游戏策划
  3.1 游戏UI
  (1)屏幕上会显示主角的装甲以及得分。如果游戏结束,屏幕上会显示“游戏结束”,同时还会显示出“重新开始”按钮。
  (2)主角
  主角拥有三级装甲,被敌人击中或撞击一次,则损失一次装甲值,当装甲值为0时,游戏结束。
  3.2 游戏操作
  (1)本游戏将在PC平台上开发,按键盘上的W、S、A、D或上、下、左、右键控制主角上下左右飞行,按空格或鼠标左键射击。
  (2) 敌人
  游戏中敌人分为初级敌人和高级敌人两种:   初级敌人:装甲较弱,为飞碟类,以撞击主角为主,沿弧线飞行。
  高級敌人:装甲较强,为宇宙飞船类,可以发射子弹,后期子弹会越来越快,沿直线飞行。
  4 系统实现
  游戏有多个功能模块,这里仅详细讲解“游戏开始”模块和“游戏结束”模块。
  4.1游戏开始
  (1)开始功能的实现
  游戏开始,首页显示游戏开始按钮,点击“开始游戏”按钮,进入游戏。
  (2)开始按钮的代码:
  PublicvoidOnResetButtonClick ()
  {SceneManager. LoadScene(“Main”);
  4.2游戏结束界面的实现
  (1)重新开始按钮
  重启按钮主要说的就是在游戏中,你点击“再试一次”按钮,本游戏就会重新开始,但不会记录此次所操作的分数。
  PublicvoidOnResetButtonClick ()
  {SceneManager.LoadScene(“StartUI" );
  (2)分数显示
  分数是在游戏结束时保留数据,切换到场景后,游戏可以显示读取的数据,然后对多次的游戏份数进行保存,可以对游戏得数进行查询。
  4.3游戏主界面的实现
  (1)场景的搭建
  Unity包导入到项目中,将资源包作为面板直接拖放到项目中,然后选择所有导入。导入后,选择场景模型,拖放到“层次”面板,然后重置模型的变换组件。
  (2)用户的功能实现
  需要在资源包中找到角色,把用户主角放在“层次结构”窗格中。
  5系统测试
  此飞机大战游戏在Unity3D Mono 模拟器上运行,游戏运行平稳,界面简单易懂,操作简单,画面明亮。
  6结语
  从游戏的开始界面、游戏界面、游戏对象、游戏结束界面等模块开始。使用Unity3D引擎,结合C#开发了一个简单的飞机大战游戏。游戏包括组件安装、碰撞检测和敌方出现位置是关键技术。基本实现了一般的游戏功能,可扩展性也很高。
  参考文献:
  [1] 宣雨松,编著.Unity3D游戏开发[M].人民邮电出版社.2015
  [2]曾雪松,尚光龙。三维虚拟校园漫游动画设计与实现一 以信阳职业技术学院为例[J].福建电脑.2016.
  [3]李莉,曾晓燕,李锴,等.基于unity3d的模拟驾驶游戏.计算机产品与流通,2020(9):117-118.
  作者简介:
  张照乾(1996-),男,汉族,河北邯郸人,硕士,研究方向为计算机科学与技术、图像处理
  吕文超(1998-),男,汉族,河北沧州人,硕士,研究方向为计算机技术、深度学习
  通信作者:黄猛(1976-),男,汉族,河南省新乡人,硕士,教授,研究方向为GIS 、软件工程、机器学习、深度学习、大数据分析,E-mail:[email protected]
  防灾科技学院 河北三河 065201
其他文献
摘要:烟台苹果是驰名国内外的水果,是烟台农民收人的主要来源,烟台苹果种植面积占山东省的48%,产量占全省56%,到2020年底,烟台苹果种植面积达到 286万亩,产量达575万吨,烟台苹果品牌价值达到了477.3亿元,连续16年稳居中国果品区域公用品牌价值榜榜首。探讨烟台苹果产业发展存在的问题与应对策略意义深远。  主题词:烟台苹果 存在问题 发展对策  一、烟台苹果产业存在的问题  烟台以烟台苹
期刊
摘要:压力容器在石油化工、冶金机械、航空航天等工业生产中广泛应用,其质量关乎安全生产,因此相关企业在进行压力容器制作的过程中,要不断加大对质量控制的重视度,减少其制造过程中能够对其造成影响的因素,其在应用过程中出现安全事故的概率才能得到降低,本文就此展开分析。  关键词:压力容器;制造;质量控制;检验  近年来在我国经济科技发展的促进下,我国工业工程技术水平有很大提高,石油化工、冶金机械、航空航天
期刊
国以农为本,农以种为先。我国是农业大国和用种大国,农作物种业是国家战略性、基础性核心产业,是促进农业长期稳定发展、保障国家粮食安全的根本。中央经济工作会议明确提出2021年重点工作之一是解决好种子和耕地问题。2021年中央一号文件也指出,要打好种业翻身仗。  绥化市北林区地处黑龙江省中南部,松嫩平原腹地,寒地黑土核心区域,是全国绿色食品标准化原料生产基地、国家现代农业示范区,连续多年被评为全国产粮
期刊
关键词:个体性 整体 辩证法 承认  摘要:每个人都是一个个体,个体生活在世界中为了实现自己得承认而斗争,因此得到国家、社会以及他人得承认。黑格尔的《精神现象学》从整体性出发去研究人的个体性,从人为了承认而斗争,看似忽视了人的个体性,只是在整体性的对比中去强调人的个体性。黑格尔“个体性”理论的最大价值就是把“个体性”的生成看成“历史性”的过程,在这个过程中,人始终处于辩证的,每天都在创造一个不一样
期刊
摘要:随着人类化学工艺的进步与提升,金属材料人的类型与用途越来越广泛。金属材料因其较好的延展性、抗压耐受性等成为现代建筑、生活中非常普遍的应用材料。金属材料的应用领域及场景离不开焊接工艺的革新与进步。在金属材料的焊接过程中,往往由于外力作用,使得金属材料会出现这样那样的问题,甚至有时候会出现危及人民群众生命财产安全的事情。本文着力探讨金属材料在焊接工艺过程中存在的问题及对应的解决措施。  关键词:
期刊
摘要:自改革开放以来,随着我国社会经济高速发展,我国对青山年心理健康问题高度重视,并且取得了相当的成就。健康不仅需要强健的体魄,还要良好的心理素质和健全的人格。本文从学校因素、家庭因素、社会因素、学生自身因素四个方面分析了乡镇青少年产生心理健康问题的种种原因,并探讨了四种不同的解决对策:学校对青少年进行心理健康教育、家长加强对孩子的指导和帮助、社会编织青少年心理健康安全网、青少年加强学习,提高自身
期刊
摘要:本文是以望城区GF-1遥感影像数据为基础,利用ENVI软件完成遥感数据预处理,以B432按RGB组合波段,作为湿地信息提取的最佳波段,分别采用最大似然法、决策树法、支持向量机法,对湿地资源信息进行提取工作,找到较优的分类识别方法,对其进行精度评定。本文主要研究结论:  1.最大似然法不适用于遥感影像的分类识别,遥感影像数据并非正态分布,且其计算量极大,因此选择最大似然法处理遥感影像是不明智的
期刊
摘要:石油化工企业的生产工艺较为复杂,多会采用高温、高压、真空、深冷等生产方式,其原料多与石油有关,一般具有易燃易爆、有毒有害的特点,因此在生产过程中存在较多的风险因素与安全隐患,极易发生安全事故。因此,石油化工企业必须做好企业风险防控工作,为企业安全生产提供安全保障。基于此,文章重点针对石油化工安全生产风险控制措施进行了分析,以供参考。  关键词:石油化工;安全生产风险;控制策略导言  随着化工
期刊
摘要:伴随着经济社会的快速发展,城市化建设步伐的不断加快,各种“城市病”层出不穷,给人们的生产生活和社会发展带来了严重的不利影响。实施网络服务管理模式,可以有效地促使管理理念逐步从传统的“以控制为主”向“以服务为主”转变。网络服务管理模式能否成功转型,关键在于其服务管理理念的创新。此文主要探讨了政府区域治理应用网格化管理中存在的问题以及具体的提升策略。  关键词:网格化管理;政府;区域社会治理  
期刊
摘要:本文以地铁车下设备制动模块为研究对象,依据“EN12663-2010铁路应用-铁路车辆车身的结构要求”标准施加载荷,采用ANSYS软件对制动模块进行了有限元应力分析,并对其进行静强度和疲劳强度评估。计算结果表明,该制动模块结构的静强度和疲劳强度均满足标准要求,为类似结构设计、分析计算、改进优化提供了参考。  关键词:制动模块;静强度;疲劳强度;ANSYS  随着地铁事业的飞速发展,人们对地铁
期刊