基于Unity3D的消防员角色扮演游戏的设计与实现


    

    基Unity3D消防员角色扮演游戏设计实现
    Design and implementation of fireman role playing game based on Unity3d

    容摘

    年市场科普游戏越越受重视现市场关消防员游戏普遍2D25D画面皆玩家简单操作游戏物进行灭火科普效果显著开发款第称视角加入训练元素消防员角色扮演类游戏十分意义
    次课题通收集消防员日常训练资料真实火灾危害数救援方式数结合影视作品书籍等方进行研究探讨制作具定真实性游戏关卡
    次课题研究开发游戏款基Unity3D游戏开发引擎开发第称视角消防员角色扮演类游戏游戏首先形编辑器Terrain制作游戏形模型制作软件3D Studio Max制作修改模型加辅助结合Unity引擎带粒子效果控件创造具真实感火灾现场场景游戏中物操作通运Unity3D游戏开发引擎中带角色控制器CharacterController实现物移动控制视角控制利射线检测碰撞碰撞触发器算法Enum算法等方式实现游戏中状态拥着效果发生提高游戏玩性真实性结合设定流程玩家更代入消防员角色中
    综述次课题研究开发游戏具完整性创新性具较高研讨价值运价值学价值

    关键词: Unity3D 消防员 角色扮演 真实 学


    Abstract

    In recent years popular science games in the market have attracted more and more attention from people However in the existing market firefighter games are generally based on 2D or 25d pictures and players simply operate the game characters to put out the fire The popular science effect is not significant Therefore it makes sense to develop a firefighter roleplaying game with the first person as the perspective and training elements
    This project collects the daily training data of firefighters the real data of fire hazards and the data of rescue methods and then conducts research and discussion in combination with film and television works books and other directions so as to make a certain authenticity of the game level
    This topic research and development of the game is a based on Unity3D game engine development firefighters roleplaying games with a firstperson perspective game first with the Terrain editor Terrain landform model making software 3 d Studio Max assist production and modify the model combined with the Unity engine controls own particle effect creating realistic fire scenarios The character manipulation in the game is to achieve the character movement control and perspective control through the use of the CharacterController built into the Unity3D game development engine By means of ray detection collision collision trigger algorithm and Enum algorithm different effects are achieved in different states of the game which further improves the playability and authenticity of the game Finally combined with the set process make the player better into the fireman role
    To sum up the game researched and developed in this project has integrity and innovation and has high research value application value and learning value

    Key words Unity Firemen Role play Authentic Study
    目 录

    第章 绪 1
    11课题研究背景意义 1
    12消防员游戏国外研究现况 1
    121消防员游戏国研究现况 1
    122消防员游戏国外研究现况 2
    13次课题研究设计开发软件 3
    131 Unity3D 3
    132 3D Studio Max 3
    133 Microsoft Visual Studio 3
    14次课题研究容 4
    第二章 游戏需求分析总体设计方案 5
    21 消防员角色扮演游戏需求分析 5
    211 玩家需求分析 5
    212 功需求分析 5
    212 性需求分析 6
    22游戏总体设计方案 7
    221游戏结构设计方案 7
    222总体结构设计方案 7
    第三章 游戏详细设计实现 10
    31角色控制模块 10
    311 角色移动控制 10
    312 角色视角控制 11
    313 鼠标锁定解锁 12
    32火焰效果模块 12
    321 火焰部署 12
    322 灭火功实现 13
    33 烟雾效果模块 15
    34 灭火器模块 18
    341 灭火器模型设置 18
    342灭火器发射灭火剂功实现 18
    343 种类灭火器问题 19
    344 灭火器拾取放功实现 20
    35 氧气健康值效果模块 22
    36游戏UI模块 23
    第四章 游戏测试 25
    41功测试 25
    42性测试 27
    43游戏测试结 27
    第五章 总结展 28
    51总结 28
    52展 28
    参 考 文 献 30
    致谢 31




    第章 绪

    11课题研究背景意义
    次课题研究运游戏编程Unity3D游戏开发引擎开发3D Studio Max模型制作软件制作修改模型计算机图形学等相关技术实现寓教乐第称消防员角色扮演单机游戏项目中带边玩游戏边学知识等特点:首先玩家扮演名消防员务包括灭火务救援务方面第称玩家更代入游戏中次玩家游戏程中通游戏中带训练关卡设置机关中学定日常消防知识者现消防题材游戏中分两种:种网页童类游戏简单说鼠标点击火焰图标灭火科普性极低第二种老牌IP消防第六分队急难先锋等策略性游戏科普性高运皆25D界面职业代入感较差次课题研究拥着极高研究价值市场价值
    12消防员游戏国外研究现况
    121消防员游戏国研究现况
    消防员游戏目前国重视网搜索中国消防员游戏基皆网页游戏百度搜索引擎例搜索消防员游戏出现基43997K7K等游戏网站提供网页游戏中游戏基简单点击火焰标志灭火什火情水进行灭火操作简单科普性极低什火情水进行灭火极严重错误特殊火情中水灭火会造成更加危险容易国玩家单纯水灭万火导致火灾中造成二次伤害
    国游戏举例:奇想咕噜团勇敢消防员玩家鼠标操作角色鼠标点击建筑中火焰标志喷出水柱进行灭火玩性高科普性极低奇想咕噜团勇敢消防员游戏截图图11示:

    图11 国消防游戏奇想咕噜团勇敢消防员游戏截图
    122消防员游戏国外研究现况
    国外消防员题材游戏老牌IP消防第六分队急难先锋等策略性游戏玩家帝视角25D控制角色进行救援务科普性极高玩性高玩家代入性高消防第六分队游戏例玩家需控制名消防员进行救援务游戏程中容易专注务点救援务忽略某务点消防队员导致死亡消防员出现危险时游戏图会出现红色感叹号某处发生爆炸时图出现红色感叹号玩家容易二者搞混导致角色死亡然类游戏科普性极高种火情灭火条件区分例水法熄灭油罐车火情等等果采第称话玩家更代入职业中更加深刻印象消防第六分队游戏截图图12示:

    图12 消防第六分队游戏截图
    13次课题研究设计开发软件
    131 Unity3D
    电子游戏越越重视社会Unity3D成绝数游戏开发者首选开发3D引擎然名字中带着3D二字Unity3D2D游戏开发着极优秀表现首先Unity3D采ALL IN ONE设计思路开发者开发游戏时极方便编辑器集身模型操作时需简单选中模型右键弹出材质编辑器然材质碰撞体结构等进行操作觉操作模型身次Unity3D够编辑立刻运行查效果运行时修改游戏中参数实时作调整停止运行时游戏中修改参数失效避免调整忘记开始设置参数称见者Unity3D拥独二开发者商城 — Asset Stone商城中购买开发者开发插件鉴更思路摆脱前面困境游戏开发引擎中具备特点
    132 3D Studio Max
    3ds MAX软件Discreet公司开发造三维动画渲染软件广泛应游戏开发建模建筑设计影视行业等领域次课题研究开发游戏助3ds MAX强灵活模型制作力游戏中出现楼房场景中燃烧物品相关消防设备等模型进行搭建
    133 Microsoft Visual Studio
    次课题研究开发游戏基C#语言开发利开发工具集微软公司开发Visual StudioVisual Studio配合Unity游戏引擎开发游戏佳搭档够利强调试功帮助者调试Unity游戏快速发现问题
    14次课题研究容
    综合前文述次课题Unity3D游戏开发引擎作开发工具3D Studio Max模型制作软件技术辅佐研发款第称实现消防训练现场灭火火场救出质等工作完成救援命消防员角色扮演游戏


    第二章 游戏需求分析总体设计方案

    21 消防员角色扮演游戏需求分析
    211 玩家需求分析
    游戏坏玩家觉款游戏否玩玩二字非体现款游戏否玩家中体验:乐趣吸引力控制力挑战性玩家直观需求点游戏求拥1简单方便操作模式2真实火灾体验感3拥挑战性关卡样够玩家欲玩会半途废
    212 功需求分析
    游戏采视角第称结合消防员职业需玩家拥面灾难真实感觉必须紧紧围绕真实二字实现游戏整体
    首先保证玩家游戏初期训练关卡中够快速学游戏控制方式需玩家游戏交互方式简单方便定交互反馈玩家体验
    次游戏采第称视角游戏关卡中设置火焰效果烟雾效果必须真实风格卡通风者太假拥贴现实火焰效果烟雾效果够极程度提升玩家游戏体验感粒子效果需适追求华丽游戏性造成影响
    围绕真实二字制作氧气量消耗分析救援案例中百分六十消防员缺氧导致伤亡火焰燃耗会剧烈消耗氧气加现场燃烧产物氧化碳二氧化碳会造成消防员缺氧造氧气量消耗十分必够极提升游戏真实感
    综述次课题开发游戏功需求致分模块:
    (1)机交互:玩家通键盘WSAD四键控制物移动空格键控制物跳跃通设置键进行触发设定效果鼠标控制物视角左键控制激活水枪发射灭火剂灭火器发射灭火剂等效果
    (2)粒子效果:火焰粒子效果烟雾粒子效果必须做真实火焰需区分开相应灭火器完成灭火操作烟雾需做火焰熄灭时燃烧物体出现提升玩家真实感
    (3)物理效果:物特定场景会慢慢消耗事先设定氧气量氧气量消耗殆时会降低身体健康值身体健康值降0时会造成角色死亡务失败
    游戏体功需求分析图21示:

    图21游戏体功需求分析图

    212 性需求分析
    款游戏玩性高容足够丰富外需控制机器性损耗果款游戏够流畅运行会极程度降低玩家游戏体验次课题研究开发游戏中制作真实火灾现场必定会粒子效果粒子效果必然会损耗较机器性影响游戏性面情况必须功方面选择机器性损耗较低方法实现

    22游戏总体设计方案
    221游戏结构设计方案
    次课题研究开发游戏结构简单方便玩家玩家达快速手游戏目文游戏结构简单分开始游戏→游戏界面→进行训练直接开始正式务→务成功务失败→重新开始务退出务→界面→选择关卡退出游戏游戏结构详情图22示

    图22 游戏结构图
    222总体结构设计方案
    结合文述出次课题研究开发游戏总体模块架构图示:

    图23游戏总体模块架构图

    次课题研究开发游戏中模块具体分析:
    (1)机交互模块:游戏中界面开始游戏界面游戏进行时UI界面均Unity3D游戏开发引擎中带UGUI模块设计C#脚监听识玩家操作通UI变化告知玩家操作游戏带影响完成系列机交互交互反馈方面C#脚编辑模块监听识玩家键盘输入者鼠标点击事件通UI颜色变化者放缩者UI颜色递减等方式玩家进行交互例玩家点击开始务钮通钮变化告知玩家否已点击钮游戏训练关卡中会部分字牌方式提醒玩家
    (2)游戏功模块:游戏场景3ds MAX制作修改游戏建筑模型配合Unity游戏开发引擎带Terrain形编辑组件搭建完成救援现场建筑模块中建筑模型表面配合火焰粒子效果烟雾粒子效果制成真实灾难现场效果建筑部模块中样会添加火焰粒子效果烟雾粒子效果时加入Unity游戏开发引擎中带Fog Light设定增加烟雾降低玩家见度效果玩家进入特定区域氧气剩余量者身体健康值会发生递减变化告知玩家区域呆久会生命危险玩家消防器材进行灭火时会粒子效果变化告知玩家操作否效达提高玩家游戏真实体验


    第三章 游戏详细设计实现

    31角色控制模块
    311 角色移动控制
    次课题研究开发游戏中角色操作模式般第称射击类游戏操作方式异均键盘操作鼠标操作作输入方式游戏事件进行触发操作游戏中物移动WSAD控制前进退左右空格控制跳跃
    基Unity3D游戏开发引擎开发游戏中常见控制角色移动方法种第种方法直接修改角色transformposition属性利if语句检测玩家键盘输入修改相应方transformposition属性达角色移动目种方法缺点角色移动起会种卡顿感觉第二种刚体Rigidbody组件通相应方施加力作带动角色移动然种方法具备物理特性意味着松开键时候角色会立停会继续滑动部分距离第三种Unity3D游戏开发引擎带角色控制器CharacterController调Move方法实现角色移动跳跃次课题研究开发游戏中减少代码开发量选择第三种方法实现角色移动角色移动控制脚核心代码图31示:

    图31 角色移动控制脚
    312 角色视角控制
    游戏中角色视觉控制完全鼠标完成鼠标控制玩家前进方瞄准火源等操作时文311理游戏开发视角控制代码Unity3D游戏开发引擎带MouseLook脚角色视角控制脚核心代码图32示:

    图32 角色视角控制脚
    313 鼠标锁定解锁
    考虑玩家时候需鼠标游戏设置进行操作鼠标角色视角控制器时候需增加操作鼠标解锁出玩家进行点击画面设置UI进入设置界面进行操作
    首先定义Bool值鼠标默认状态if语句检测玩家鼠标解锁操作改变Bool值鼠标显示出玩家操作完成Bool值改回默认值隐藏鼠标
    32火焰效果模块
    321 火焰部署
    游戏中需布置量火焰粒子呈现火灾效果简单火焰粒子拖放游戏场景中样子粒子效果法检测粒子效果需方法够检测次课题研究开发游戏中先创建Cube然根需部署火焰场景位置改变形状然需火焰粒子添加Cube中作子类CubeLayer层修改相应灭火器检测层例水灭火焰层选择成WaterColl文331中灭火功实现检测火焰作铺垫然取消勾选CubeMesh Renderer实现隐藏父类添加文331中灭火功实现灭火效果代码样够检测火焰完成拖放场景中部署部署效果图33示:

    图33 Cube部署场景中
    322 灭火功实现
    现实生活中消防员实现熄灭火焰非够灭火物质浇火焰熄灭理游戏中水粒子效果浇火焰粒子效果火焰粒子效果慢慢消失达灭火效果实现里实现灭火效果功方法两种第种粒子碰撞器水粒子触碰火粒子通C#脚编辑模块调C#脚控制火焰粒子生命周期参数慢慢减0实现灭火效果第二种通射线碰撞检测玩家点击物体否火焰粒子果通C#脚编辑模块调C#脚控制火焰粒子中属性参数慢慢减0实现灭火效果果玩家点击火焰粒子做操作第种方法中粒子碰撞器会造成机器性损耗第二种方法避免种情况发生次课题研究开发游戏中游戏项目性优化方面考虑选择第二种方法减游戏机器性损耗
    游戏中玩家实现灭火效果需鼠标准心指火焰次鼠标左键发射灭火剂击中火焰灭火剂浇灭火焰次课题研究开发游戏中实现灭火功设计:
    (1)粒子效果控制:游戏中实现灭火实相火焰粒子效果消失做粒子效果消失修改粒子效果中属性参数例Start LifetimeSimulation SpeedMax Particles游戏中选择修改粒子效果属性Max Particles首先创建C#脚命名FirePoint控制游戏中部署火焰粒子ParticleSystem[]方法定义数组ParticalArr理粒子数组次定义int值ReduceRate控制粒子减速率结合时间差值粒子减速率积——Timetime * ReduceRate控制粒子效果中Max Particles变化具体效果实现代码FirePoint:
    获取粒子数组
    public ParticleSystem[] ParticalArr
    火焰粒子减速率
    public int ReduceRate 3

    private void Start(){}
    private void Update(){}

    准心指火焰时火焰开始慢慢减
    public void ReduceScale(){
    ParticalArr[0]maxParticles (int)(Timetime * ReduceRate)
    }

    (2)射线碰撞检测+LayerMask调FirePoint脚控制火焰粒子:发射条射线射线碰撞物体Layer层设定目标Layer层时调系列C#脚进行操作游戏中样实现:首先已部署火焰设定相应Layer层CameramainScreenPointToRay方法屏幕中心鼠标指方发射条射线进行碰撞检测定义int变量layerMask滤需Layer层准备完成PhysicsRaycast方法获取碰撞物体返回值设定bool类型射线投射碰撞器交叉时真否假具体效果实现代码:
    滤必物体获取需灭火物体发生碰撞
    int layerMask 1<< LayerMaskNameToLayer(WaterColl)
    屏幕中心发射射线
    Ray ray CameramainScreenPointToRay(InputmousePosition)
    获取屏幕中心射出射线否碰东西
    if (PhysicsRaycast(rayout hit30flayerMask)){
    果点中火焰获取FirePoint组件
    if (hitcollidergameObjectGetComponent()){
    果找父类找
    CurFirePoint hitcollidertransformparentgameObjectGetComponent()
    }
    果直接获取FirePoint
    else{
    CurFirePoint hitcollidergameObjectGetComponent()
    }
    找组件开始调FirePointReduceScale函数进行灭火
    CurFirePointReduceScale()
    }
    查射线方
    DebugDrawRay(rayorigin raydirection)

    33 烟雾效果模块
    次课题研究开发游戏中烟雾效果两种第种烟雾效果着火物体熄灭会出定烟雾第二种烟雾效果模拟空气流通性差空间充斥量燃烧产生烟雾前者粒子效果实现者Unity3D游戏开发引擎中带FogLight实现
    第种烟雾实现较简单if语句判断前火焰粒子Max Particles否0假定检测Max Particles值已减0开启烟雾效果Max Particles值0时烟雾粒子效果默认关闭实现代码:
    foreach (var item in ParticalArr){
    itemmaxParticles (int)(Timetime * ReduceRate)
    maxParticles等0时候开启烟雾粒子
    if (itemmaxParticles 0){
    f (Fog null)
    FogSetActive(true)
    }
    }

    第二种烟雾效果实现程较繁琐首先实现效果需碰撞检测检测玩家身处特定区域时应该开启烟雾效果降低玩家见度提高游戏真实性
    碰撞检测OnTriggerEnter()方法OnTriggerExit()方法实现实现该方法三前提条件第条件两物体必须碰撞器Collider组件第二条件中物体碰撞器Collider组件isTrigger属性必须勾第三条件重条件中物体必须带刚体Rigidbody组件物体发生碰撞体满足三条件法触发两方法出具体实现方法:
    (1)首先创建Cube改变进入建筑差次关闭CubeMesh Renderer勾选isTrigger属性玩家身已拥刚体Rigidbody组件玩家发生碰撞体该Cube需添加刚体Rigidbody组件该Cube属性图34示:

    图34 Cube属性
    (2)CubeBox Collider碰撞器组件玩家身Character Controller碰撞器组件果检测玩家身碰撞器进入该Cube碰撞器调OnTriggerEnter()方法果检测玩家身碰撞器停止接触该Cube碰撞器调OnTriggerExit()方法两方法中if语句判断玩家接触触发器否提前设定触发器果开启FogLight果做反应玩家停止接触触发器关闭FogLight具体实现代码:
    玩家进入触发器
    private void OnTriggerEnter(Collider hit){
    碰撞设定Fog触发器
    if (hitgameObject fog){
    RenderSettingsfog true
    }
    }
    玩家停止接触触发器
    private void OnTriggerExit(Collider hit){
    if (hitgameObject fog){
    RenderSettingsfog false
    }
    }

    FogLight效果开启图35示:

    图35 开启FogLight
    (3)Unity3D游戏开发引擎中带FogLight中Fog雾三种模式分Linear线性模式Exponential指数模式Exponential Squared指数方模式三种模式较测试终选择Exponential指数模式该模式Density参数表示雾浓度数值越表示雾越浓次测试终选定FogDensity参数值005Fog颜色选择134134134255关Fog参数设置图36示:

    图36 Fog参数设置

    34 灭火器模块
    341 灭火器模型设置
    次课题研究开发游戏中玩家接触灭火器总4种分水基灭火器干粉灭火器泡沫灭火器二氧化碳灭火器3ds MAX软件做灭火器模型导入Unity中需添加刚体Rigidbody组件碰撞体Mesh Collider 组件存物理效果次4种灭火器Tag修改灭火器专属Tag够实现文344中功二氧化碳灭火器属性图图36示:

    图36 二氧化碳灭火器属性
    342灭火器发射灭火剂功实现
    现实生活里灭火器正常情况会发射灭火剂需进行系列操作:拉掉保险丝准火源压发射灭火剂游戏中实现点说起灭火器会动发射灭火剂样子违背现实符合第二章游戏需求分析中追求真实感次课题研究开发游戏中鼠标模仿手点击松开鼠标左键模仿消防器压松开消防器压
    首先创建实现开火脚挂场景中放置灭火剂粒子效果中Start()方法中默认关闭前粒子效果次Update()方法中if语句检测鼠标输入检测鼠标左键时ParticleSystem中GetComponent()方法开粒子效果检测松开鼠标左键时理该方法关闭粒子效果具体实现代码:
    void Start(){
    默认关闭
    WatergameObjectGetComponent()Stop()
    }

    void Update(){
    鼠标左键
    if (InputGetMouseButton(0)){
    WatergameObjectGetComponent()Play()
    }
    松开鼠标左键
    if (InputGetMouseButtonUp(0)){
    WatergameObjectGetComponent()Stop()
    }
    }

    343 种类灭火器问题
    现实生活中知道灭火器止种时候眼前灭火器定适灭眼前火情种类火源需种类灭火器提高玩家游戏真实性感受必须游戏中体现出点:样火情需相应灭火器解决
    次课题研究开发游戏中灭火器种类4种进行拾取操作时候会灭火器参数定位错误导致法拾取者灭火时候灭火器参数定位错误导致法灭火里选择Unity3D游戏开发引擎中带枚举类型enum进行操作游戏拥种状态时候枚举enum种十分帮助工具增强C#脚准确性减少游戏运算损耗
    首先声明enum类存放灭火器种类定义值存放灭火器种类游戏开始时玩家手中没灭火器灭火器默认种类定义None时法进行发射灭火剂操作法进行灭火操作文341中已说明种灭火器相应Tag玩家进行拾取操作时系统会识灭火器Tag根Tag存放enum中相应灭火器种类赋予灭火器拥种类识加文322中灭火功实现火情需相应种类灭火器解决否法灭掉火源文灭火功实现脚中if语句判断前火源否灭火器种类相

    图38 根拾取灭火器Tag赋予灭火器相应种类


    图37 判断火源种类否灭火器种类相


    344 灭火器拾取放功实现
    述实现功中鼠标已定义视角控制鼠标左键控制灭火器开火功继续鼠标添加拾取灭火器功话会造成功混乱键盘输入实现灭火器拾取放F键拾取灭火器G键放灭火器
    游戏中拾取件物品手中想象成件物品固定视角范围拾取键时拾取物品面前隐藏起时摄机前方固定位置生成拾取物品复制体形成手中感觉理反放键时候摄机前方固定物品复制体隐藏起然面前重新生成物体样实现拾取放效果具体实现方法
    首先摄机前方摆放灭火器复制体关闭Mesh Renderer实现隐藏然射线检测鼠标指位置否存物体果存物体gameObjectCompareTag()方法检测物体Tag否拾取物品Tag果关闭该物体Mesh Renderer隐藏起时开前摆放灭火器复制体Mesh Renderer出现灭火器种类赋予实现灭火器拾取手效果if语句通检测灭火器种类否None判断玩家手中没灭火器果进行拾取操作果没进行拾取操作具体实现代码:
    if (CurFireType FireTypeNone) return判断手中没灭火器
    Ray ray CameramainScreenPointToRay(InputmousePosition)
    if (PhysicsRaycast(rayout hit 100f)){
    if (hitcollidergameObjectCompareTag(mhq))判断Tag{
    MHQPfb hitcollidergameObject
    hitcollidergameObjectSetActive(false)隐藏灭火器
    showMHQ(true)开灭火器复制体
    }
    }
    private void showMHQ(bool flag)
    { MHQSetActive(flag) }

    需放灭火器时候需检测Tag判断灭火器种类否None果进行放操作果否进行放操作复制体隐藏接着利transformposition()方法角色前方生成灭火器体实现灭火器放效果灭火器种类定义None具体实现代码:
    if (CurFireType FireTypeNone)return
    switch (CurFireType){
    case FireTypeShui
    if (MHQgameObjectactiveInHierarchy) return
    break
    …}
    showMHQ(false)隐藏复制体
    MHQPfbSetActive(true)激活灭火器体身前出现
    MHQPfbtransformposition gameObjecttransformposition + transformforward* 2 + Vector3down * 07f
    CurFireType FireTypeNone赋予灭火器种类None

    35 氧气健康值效果模块
    火场中火焰燃烧会剧烈消耗氧气时生成剧毒氧化碳二氧化碳燃耗产物会导致消防员法呼吸窒息死亡根数统计消防员百分60伤亡皆缺氧造成消防员进入火场进行救援工作时候会佩戴氧气瓶意味着救援时间限必须赶氧气消耗殆前完成救援工作
    提高游戏真实性必须游戏中拥氧气值消耗功氧气值消耗殆时意味着消防员开始吸入氧化碳二氧化碳会降低消防员健康值旦健康值消耗完毕代表着角色死亡
    次课题研究开发游戏中Unity3D游戏开发引擎中带GUI设计控件UGUI实现功首先先Unity开发模式转换2D开发模式新建UGUI控件中画布CanvasCanvas中新建两滑动器控件Slider分表示氧气剩余量身体健康值两者调整合适放置Canvas合理位置然固定两者描点删Slider中Handle Slide Area修改SliderFill AreaRect Transform中Right值0样颜色填满整滑动器控件SliderValue值改1然颜色改成蓝色红色分应氧气值剩余量身体健康值样氧气剩余量身体健康值制作完毕接C#脚控制减少
    控制氧气剩余量减少文33烟雾模块中碰撞检测角色检测器接触理解玩家进入火场系统检测玩家进入火场调脚控制氧气剩余量减少实现消耗氧气效果首先定义布尔值表示玩家否进入火场玩家进入火场时布尔值定义true玩家离开火场时布尔值定义false布尔值传控制氧气剩余量C#脚代码模块中if语句判断果布尔值True表示玩家进入火场时氧气剩余量开始结合TimedeltaTime时间差值开始减达减少效果if语句判断氧气剩余量否某设定参数果身体健康值样开始结合TimedeltaTime时间差值开始减if语句判断身体健康值否等0果角色死亡弹出务失败界面提示玩家未完成规定务具体实现代码:
    if (C02inCO2)inCO2传输烟雾效果模块脚中定义bool值{
    O2value TimedeltaTime氧气剩余量开始减
    if (O2value < 001f){氧气值等001f
    Healthvalue TimedeltaTime身体健康值开始减
    }
    身体健康值等001f角色死亡
    if (Healthvalue < 001f)
    氧气值剩余量身体健康值效果图图37示:

    图37 氧气值剩余量身体健康值

    36游戏UI模块
    次课题研究开发游戏基Unity3D游戏开发引擎制作关次游戏UI界面选择Unity3D游戏开发引擎带UGUI制作优点需导入插件完成游戏存占率高缺点制作程较繁琐游戏UI需求高切简洁利UGUI控件制作UI界面
    围绕着题——消防员角色扮演开始界面背景张消防员面滚滚浓烟背景游戏名字——March Forward Courageously – 勇直前相应突出消防员知道面危险勇直前含义游戏界面背景图38示:

    图38 游戏界面背景

    般说游戏开始界面需设置太功钮般需满足两点游戏名字两钮供玩家进行交互般开始游戏退出游戏游戏设置三钮满足两点满足玩家需求时做游戏界面简洁性
    UGUI中Button钮Button钮中OnClick添加鼠标点击事件通C#脚控制点击事件完成玩家点击钮获交互反馈效果UGUI带Button钮中玩家点击该钮时钮会通改变颜色告知玩家已点击游戏开始界面图39示:

    图39 游戏开始界面




    第四章 游戏测试

    次课题研究开发游戏功测试性测试两方面进行必游戏测试
    (1)功测试:次课题研究开发游戏中涉游戏功进行测试观察整理测试结果
    (2)性测试:关闭电脑系统必程序情况通直接观察法观察电脑处理器占变化整理测试结果
    次测试计算机硬件配置软件配置表41示:
    表41次测试计算机硬件配置软件配置
    硬件软件环境
    参数值
    CPU
    Inter(R)Core(TM)i54200H @280GHz 279GHz
    GPU
    NVIDIA Geforce GTX 950M
    RAM
    12GB
    System
    Windows10专业版 1903
    Unity
    201931f1

    41功测试
    次课题研究开发游戏Unity3D游戏开发引擎中选择PC运行端Build出运行测试电脑系统必程序运行中状态运行结果次方面游戏功测试测试结果整理表42示:
    表42功测试结果表
    测试功
    玩家操作
    执行结果
    行性
    UI交互
    进入游戏开始界面点击开始游戏退出游戏
    进入关卡选择界面者关闭游戏

    角色控制
    WSAD键空格键移动鼠标
    角色前左右移动跳跃视角鼠标移动变化

    拾取灭火器
    准灭火器F键
    角色起灭火器

    放灭火器次拾取灭火器
    身拥灭火器情况准灭火器F键
    角色法起灭火器

    放灭火器
    G键
    角色放灭火器

    发射灭火剂
    鼠标左键松开
    灭火剂粒子效果启动关闭

    灭火
    拾取水基灭火器灭相应火源
    火源熄灭

    烟雾粒子启动
    观察灭完火游戏流程
    火源熄灭烟雾粒子效果启动

    灭应火源
    拾取水基灭火器灭相应火源
    火源法熄灭系统提示错误灭火器

    FogLight开启
    控制角色进入火场观察场景
    FogLight效果启动

    氧气量消耗
    控制角色进入火场观察氧气剩余量
    氧气剩余量开始降低

    健康值消耗
    控制角色进入火场呆氧气消耗完毕观察健康值
    身体健康值开始降低

    角色死亡
    控制角色进入火场呆氧气健康值消耗完毕观察变化
    角色死亡游戏结束显示务失败界面

    场景跳转
    务失败界面重新开始钮
    场景重新跳回务场景

    音乐控制
    拾取灭火器左键
    灭火剂发射声音开启


    42性测试
    关闭电脑系统软件外软件运行游戏监控电脑指数出性测试结果表43示:
    表43 性测试结果表
    CPU
    高386均35

    36GB
    显存
    582MB
    温度监控
    硬件温度均超出健康范围

    43游戏测试结
    文4142测试结果均游戏进行次运行出结游戏测试程中未发生游戏卡死游戏崩坏游戏黑屏电脑蓝屏等现象
    综述出:次课题研究开发游戏前文设定功均已实现玩家通键盘操作鼠标操作等输入方式实现游戏设定功相应反馈够流畅运行符合正常游戏稳定性


    第五章 总结展

    51总结
    次课题研究工作里接尾声章节次课题研究工作进行总结:
    (1)研究工作开始前查阅量关消防员资料通网搜索视频分析消防员日常训练程奠定训练关卡设置然通新闻报道影视作品分析火灾现场搭建务关卡设置分析伤亡报告探讨提高作真实性
    (2)通研究数设计游戏题纲游戏玩法游戏背景
    (3)研究工作初期研究身边户功需求性需求作模块进行分析定义保证作游戏界面简洁性功完整性游戏真实性
    (4)实现程中发现场景粒子效果较导致机器性损耗较遵循游戏性需求分析设定抛弃采粒子碰撞实现灭火功改全新射线检测碰撞改变粒子效果部属性方式实现灭火功降低性损耗
    (5)实现程中改变量预制体量标签方法识物体枚举算法物体存储种类定义降低C#脚运算时间提高C#脚准确性
    终研发游戏满足玩家功需求满足性需求种功效果实现玩家操作相应效果反馈够予玩家流畅游戏体验时玩家学定日常消防知识游戏符合够吸引玩家玩性挑战性控制性真实性款具备创新意义寓教乐角色扮演类游戏
    52展
    时游戏着较发展前景未点进行展开:
    (1)游戏背景:游戏增加剧情流水线玩家更代入游戏公中体验更加真实
    (2)务实现样化:设置种通条件增加游戏趣味性
    (3)游戏关卡设计:参考现实生活发生灾难影视作品中出现场景设置更游戏关卡
    (4)游戏程:游戏程中添加更道具设定道具设定需现实生活知识相关联样玩家游戏中学知识够更加丰富

    参 考 文 献

    [1]赵富森 国消防员防护装备产业技术状况未发展方[J] 中国体防护装备2013(03)1216
    [2]柴盼 高层建筑火灾场景设置研究[D]重庆学2014
    [3]张 森林火灾现场指挥扑救决策研究[D]中南林业科技学2009
    [4]吴杰唐洪里 试消防官兵灭火救援中紧急避险[J] 消防界(电子版)2017(04)33
    [5]李艳玲 火灾现场易燃液体残留物传感检测识方法[D]中国科学技术学2014
    [6]桉程伟 基Unity3D粒子系统消防水枪流体喷射仿真研究[J] 科技创新应2017(09)42
    [7]磊 第称游戏研究[J] 电脑知识技术201612(16)205206
    [8]蔡飞龙 游戏界面设计性化[D]南京艺术学院2005
    [9]刘桂元志远杨书新基Unity3d引擎教育类游戏设计实现[J]软件导刊201716(01)5053
    [10]陈韬昊 游戏中交互设计研究[D]中国美术学院2013
    [11]徐婉珍李强魏菊霞 游戏开发实践中培养程序设计力[J] 计算机教育2017 (02):104106
    [12]Unity官方参考手册


    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 5 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    基于Unity3D的解密RPG游戏的设计与实现

    本次课题是研造一款以Unity 3D引擎的解密RPG游戏。游戏剧情是以《浦岛太郎》的童话故事为主题进行改编,原故事结局是浦岛太郎打开玉匣,最终变成了一个老头子,单调而且具有漏洞。而本游戏将会一改...

    3年前   
    1798    0

    基于Unity3D的生存解谜游戏的设计与实现(v1.1)

    自我国进入二十世纪八十代以来,国民经济如日方升,人民的生活方式也焕然一新,渐渐地人们对娱乐的需求越来越大,娱乐的方式也变得越来越多样化。

    3年前   
    1228    0

    基于Unity3d引擎的ACT游戏设计与实现

    从游戏诞生之始到现在,游戏市场就发生了非常大的变化,从卡带的游戏机到现在的电脑,专门的游戏主机等。在此之中,像素游戏是一个很重要的过渡期,像素图由于占空间少,颜色少,所以在最初阶段的电子计算机上...

    3年前   
    847    0

    基于Unity3D的塔防游戏的研究与实现

    21世纪20年代,游戏已经成为了大众经常选择的娱乐方式。其中,Unity3D作为时下热门的游戏开发引擎,不仅功能完善易上手,还可以免费使用成本低,理所当然的被许多游戏开发者所使用。

    3年前   
    698    0

    基于Unity引擎的角色扮演类的设计与实现

    Unity3d由UnityTechnologies开发研究,从2013年发布至今到发布出2019版本,从国外到国内大火,是一款让玩家轻松创建三位视频游戏、建筑可视化、实时三维动画等类型互动内容的...

    3年前   
    593    0

    基于Unity3D的仿真火灾事故的预防和处理的设计与实现

    科技的日新月异,计算机成了人类生活中不可或缺的一部分,说到计算机,游戏是不得不说的是其中的一个联想词,游戏本身所拥有的趣味性以及娱乐性,能大大的激发人类的兴趣。

    3年前   
    697    0

    基于Unity3d游戏引擎的科普类游戏的设计与开发

    随着现代城市化的发展,保护城市的要求迫切的需要执行。并且随着人们的生活质量提高,产生的生活垃圾越来越复杂。如何懂得分类生活中的垃圾,如何让垃圾有效的回收使之重新变成资源成为一个严峻的话题。

    3年前   
    605    0

    基于微信小程序的游戏玩家互动社区的设计与实现

     基于微信小程序的游戏玩家互动社区的设计与实现 ...

    10个月前   
    359    0

    基于倾角控制的LED骰子游戏的设计与实现

    近来我国科技领域硕果累累,为了适应科技的快速发展,以便尽快适应企业需求和社会发展,本设计积极开展以实践为导向的电子制作。

    3年前   
    416    0

    基于SpringBoot博客系统的设计与实现

     基于SpringBoot博客系统的设计与实现Design and implementation of bl...

    2年前   
    972    0

    基于node的微博的设计与实现

    基于node的微博的设计与实现design and implementation of microblog based on node 摘要千禧年后, Twitter开始进...

    10个月前   
    285    0

    基于unity3D的华丽弹幕

    从街机游戏到计算机游戏,信息技术的影响将与信息技术相伴,未来的发展将受到非凡的影响。加上现代5G的起步,以后更是行业大动荡时期,将萌发新游戏时代。

    3年前   
    544    0

    基于Unity3D的多视角悬浮岛生存冒险类游戏的设计与开发

    随着近年来互联网技术的发展与进步,游戏产业也迎来了朝阳时期。经过深入了解和研究生存冒险类游戏在市面上的情况,结合目前游戏市场的热点和玩家兴趣,本课题从多维度、多功能、多创新的方面出发,在开发过程...

    3年前   
    610    0

    基于MATLAB的ASK调制解调实现课程设计

    大学《通信原理》课程设计报告学 院 专 业 班 级 学 号 ...

    3年前   
    726    0

    基于SSH框架的图书管理系统的设计与实现

    基于SSH框架的图书管理系统的设计与实现基于SSH框架的图书管理系统摘 要 如今已经我们已经步入了信息时代,而在信息科技快速发展的形势下,网络现已成为我们工作和日常生活中必不可少的一部分...

    2年前   
    758    0

    基于web学生成绩管理系统设计与实现

    随着计算机技术在各行各业的广泛应用,将计算机技术应用到学校中去,将大大提高学校管理的效率。学生成绩管理系统将在提高学校管理效率中发挥重要作用。

    3年前   
    945    0

    基于ARM的智能电子秤系统的设计与实现

    随着现代社会的发展,对称重技术提出了更高的要求。目前,台式电子秤在商业贸易中的使用已相当普遍,但是仍存在较大的局限性:体积大、成本高、需要工频交流电源供应、携带不便、应用场所受到制约。现有的便携...

    3年前   
    1161    0

    《基于unity的3D校园的设计与实现》

    基于unity的3D校园的设计与实现 Design and implementation of 3D camp...

    3年前   
    750    0

    基于opencv的车牌识别系统设计与实现

     基于opencv的车牌识别系统设计与实现 ...

    2年前   
    747    0

    基于JavaWeb的图书管理系统的设计与实现

    有效的处理想要的相关信息和如何传播有效的信息,一直是人类不断探索的动力。信息管理运用各种载体,传播通过各种介质,一直伴随着人类文明的发展史。随着互联网的到来,信息传播与管理都上升了一个新的台阶,...

    3年前   
    1133    0

    文档贡献者

    平***苏

    贡献于2021-08-16

    下载需要 5 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档