第22课(2课时) 消防演练:游戏管理功能设计2_第1页
第22课(2课时) 消防演练:游戏管理功能设计2_第2页
第22课(2课时) 消防演练:游戏管理功能设计2_第3页
第22课(2课时) 消防演练:游戏管理功能设计2_第4页
第22课(2课时) 消防演练:游戏管理功能设计2_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

作者:李永亮第17课(2课时)消防演练:游戏管理功能设计(2)实现消防演练游戏的控制器逻辑与交互流程010203040506目录设计思路修改火焰脚本创建游戏管理类修改灭火器脚本加载脚本与设置按钮事件绑定01设计思路规划游戏计时、事件侦听与状态冻结的核心逻辑框架123…实现每秒更新倒计时的协程,控制游戏时间推进与失败判定计时协程设计启动计时每秒更新失败判定在Start方法中初始化并启动计时协程,存储协程对象以便后续停止协程内等待1秒后累加时间,同步更新UI显示剩余时间当累计时间超过设定值时触发游戏失败逻辑绑定火焰熄灭事件与胜利回调,实现事件驱动的胜利判定熄灭事件侦听事件绑定停止计时激活胜利界面冻结游戏状态在Start方法中为火焰对象的熄灭事件添加胜利回调胜利时停止计时协程,避免后续时间判定干扰调用UI管理器切换到胜利界面,展示结果禁用核心游戏组件,阻止玩家继续操作通过禁用组件实现游戏结束后的状态锁定,确保界面稳定游戏状态冻结恢复鼠标控制停止全局音效禁用核心组件终止粒子效果解除鼠标锁定并显示光标,方便界面操作暂停警报等背景音效,营造结束氛围关闭火焰、角色、灭火器等关键组件功能通过灭火器组件方法停止喷射粒子与音效02修改火焰脚本为火焰对象添加熄灭事件,实现胜利条件的事件驱动触发在MyExtinguishableFire类中声明UnityEvent类型的熄灭事件添加熄灭事件字段引用命名空间声明事件字段初始化事件添加UnityEngine.Events引用以支持事件类型定义publicUnityEventonFireExtinguished存储事件确保事件对象在Inspector中可编辑,支持可视化绑定在火焰生命值耗尽时调用事件,通知外部胜利条件达成触发熄灭事件生命值判定启动熄灭协程调用事件方法在Update或协程中检查火焰生命值是否为0生命值为0时启动Extinguishing协程处理熄灭动画在协程末尾执行onFireExtinguished.Invoke()触发事件01030204确保熄灭动画完成后再触发事件,保证视觉效果完整协程末尾事件调用执行熄灭动画重置火焰状态触发事件日志调试协程中播放火焰熄灭的粒子或动画效果恢复火焰对象的初始参数,为重新开始做准备动画结束后调用事件,确保胜利判定时机正确可选添加Debug.Log输出事件触发信息,便于调试03创建游戏管理类实现游戏流程控制、计时管理与状态切换的核心逻辑4312声明游戏所需的外部组件引用与内部状态变量引用与字段定义依赖UI管理器引用核心对象音效控制计时变量通过RequireComponent确保对象挂载UIManager组件定义火焰、角色、灭火器等关键对象的组件引用声明全局警报音效的AudioSource引用定义游戏时间上限、已用时间与协程对象存储变量编写TimeCounter协程,实现每秒计时与UI同步计时协程实现协程启动时间累加递归调用超时判定在Start方法中启动协程并存储对象到timeCounter协程内等待1秒后增加已用时间,更新剩余时间显示未超时则重新启动协程,实现持续计时已用时间超过上限时触发游戏失败实现PlayerWin与PlayerLose方法,处理游戏结束逻辑胜利失败方法胜利逻辑失败逻辑界面更新状态重置停止计时协程,激活胜利界面,冻结游戏状态停止计时协程,激活失败界面,冻结游戏状态通过UI管理器同步显示剩余时间与结果信息为重新开始游戏准备初始状态(如重置时间变量)04修改灭火器脚本优化灭火器控制逻辑,确保游戏结束时正确停止喷射效果010203在FireExtinguisherUserController中获取依赖组件获取组件引用引用灭火器组件获取Hose组件空值检查通过GetComponent获取FireExtinguisher组件从子对象中查找并存储Hose喷射控制组件判断Hose组件是否存在,不存在则输出调试信息重写OnDisable方法,确保组件禁用时停止喷射非激活状态处理释放灭火器禁用Hose组件清理状态调用fireExtinguisher.BeReleased()停止喷射逻辑关闭喷射粒子的控制组件,终止视觉效果重置灭火器的使用状态,避免重新激活时异常3124通过BeReleased方法停止喷射,确保音效与粒子同步终止释放灭火器逻辑停止粒子效果停止喷射音效重置输入状态恢复初始状态调用Hose组件的禁用方法,关闭喷射粒子通过灭火器组件方法终止喷射音效播放解除鼠标按键的持续触发状态将灭火器恢复到未使用的初始状态05加载脚本与设置将游戏管理脚本挂载到对象并配置参数,完成组件关联123…在Hierarchy窗口中为GamesManager对象添加GamesManager脚本挂载脚本到对象选择目标对象拖放挂载脚本验证组件存在在Hierarchy中选中GamesManager空对象将Assets/Scripts下的GamesManager.cs拖到Inspector检查Inspector中是否显示GamesManager组件在Inspector中为脚本字段赋值,关联核心游戏对象赋值对象属性关联火焰对象关联角色控制器关联灭火器关联音效将Hierarchy中的Fire对象拖到Fire字段将FPSController对象拖到PlayerCtrler字段将Fire_Extinguisher对象拖到FireExtinguisherUCtrler字段将AlarmSound对象拖到AlarmSound字段配置游戏时间上限,控制游戏难度设置游戏时间调整Time参数同步UI显示测试时间逻辑在Inspector中设置Time属性为60(单位确保Start方法中初始化UI倒计时为设定时间运行游戏验证倒计时是否正确从60开始递减06按钮事件绑定为UI按钮添加点击事件,关联游戏管理类的控制方法将PlayAgain方法绑定到胜利/失败界面的“再玩一次”按钮再玩一次方法绑定选择按钮对象添加点击事件关联游戏管理器选择方法在Hierarchy中选中Win和GameOver界面的PlayAgain按钮在Inspector的OnClick列表中添加新项将GamesManager对象拖到事件项的对象槽在下拉菜单中选择GameManager→PlayAgain()将Quit方法绑定到胜利/失败界面的“退出”按钮退出方法绑定选择按钮对象添加点击事件关联游戏管理器选择方法选中Win和GameOver界面的Esc按钮在OnClick列表中添加新项拖放GamesManager对象到事件项选择GameManager→Quit()利用Ctrl键多选按钮,批量设置相同事件,提高效率多按钮批量操作多选按钮统一添加事件验证绑定测试功能按住Ctrl键依次点击Win和GameOver界面的目标按钮在Inspector中为所有选中按钮添加相同事件点击每个按钮检查OnClick列表是否包含正确方法运行游戏点击按钮,验证是否触发对应逻辑总结本章节详细讲解了消防演练游戏控制器的设计与实现流程,从核心逻辑规划到具体代码编写,再到组件配置与事件绑定,覆盖了游戏流程控制的全环节。通过计时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论