Unity引导遮罩系统

需要游戏运行到某节点,一般是新解锁某功能,出现遮罩,只有指定的按钮能按。

我们已经知道只开放部分区域的UI遮罩的实现。现在需要设计如何把一个引导流程设计配表,反序列化。

一个引导流程由若干个点击引导组成。每个有一个屏幕某位置某大小的矩形,还有一个引导字符串。这个矩形的位置和大小我们可以直接填到配表里,也可以直接从它露出的按钮获取。但是要从按钮获取必须在配表写清楚是哪个按钮,那么必须给游戏所有按钮打一个id。

不过我们也可以只给有可能被引导的按钮打id。

然后为了让引导说明出现在合适的位置,还需要在配表填这个文本框的位置。

然后想象我们刚解锁了一个新功能,我们在程序的此位置发布一个事件。也可以不用事件,就去玩家数据里检查这个功能有没有解锁,刚解锁就触发它相应的引导流程,显示遮罩,然后玩家点击这个按钮的回调事件加一个引导前进到下一步。

或者用事件,游戏运行到某节点,发布某事件名的事件,那么引导配置里加一个此段引导要监听的事件名。

我们要把《显示下一步引导遮罩》的方法加入玩家要按的按钮的回调。那么程序必须知道要给哪个按钮加回调。我们发现还是免不了给按钮加ID。不用全加,只给可能被引导按的按钮加一个组件GuideButton,里面填上GuideID。那么前面引导配表里也就填按钮GuideID就行,显示遮罩直接通过GuideID获取按钮,再获取位置和大小。

怎么通过GuideID获取按钮?FindObjectsOfType可以,想象我们刚解锁了一个新功能,需要显示遮罩,然后根据事件名从配置里读取这组遮罩的配置,然后看第一个遮罩的按钮GuideID,这些是遮罩控制器的工作,遮罩控制器需要在多个场景工作,所以不继承MonoBehavior,或者DontDestroy,它也不知道当前遮罩按钮所属的面板。所以在遮罩配表里把面板名字也写上。

那么引导系统和面板是两个独立的物体,引导系统先去根据面板名字找到面板,从它身上找到GuideID的按钮。这里会不会出现引导先触发,面板没加载出来,导致找不到面板?

我想了想,一组引导的第一个按钮必须在当前打开的面板上。而且必须是最上层的面板。那么就按配置找到面板,然后用GetComponentsInChildren得到所有引导id组件,找到对应的GuideID?每一步引导都要这样找一遍,开销是否太大?

那让每个引导Id组件Awake时把自己加入引导控制器的字典?

我想到,引导控制器持有当前引导组的数据,以及当前走到哪一步的数据,引导步数更新时发布新引导Id的事件,对应的组件如果在,就调用显示遮罩。引导id组件初始化时也去引导控制器看一下当前激活的引导id是不是自己,如果是就显示遮罩。这个方案和红点系统类似,都是不管按钮先存在还是红点节点先存在,按钮都能正确显示红点。

这个方法总结起来就是:业务层变化时发布事件,视图层监听事件,视图层初始化时也查看一下业务层状态。

现在要实现点击按钮前进到下一步引导,那么是给按钮加回调?但是下一次按按钮不能再触发下一步引导了,还要把回调去掉?

我想到引导id组件弄一个函数,把它加入按钮,里面判断如果引导控制器当前步骤的guideId是自己,则引导进一步。

 

源码下载地址: https://pan.quark.cn/s/a4b39357ea24 谷歌公司设计了一款无费用且具备开源特性的网络浏览器,名为Chrome,因其卓越的速度、稳定性和安全性而广受赞誉。该浏览器运用了前沿的Web渲染引擎Blink以及JavaScript引擎V8,旨在保障网页载入与脚本运行的卓越效能。为应对无网络环境下的Chrome安装需求,特别准备了离线安装包。此压缩文件内含32位与64位两种规格的Chrome浏览器离线安装方案,具体文件名分别为"chromedev_x64-v68.0.3423.2.exe"与"chromedev_x86-v68.0.3423.2.exe"。在文件命名中,"x64"标识64位版本,适用于64位操作系统平台,而"x86"则对应32位版本,适配32位操作系统。文件名中的"v68.0.3423.2"代表Chrome的一个特定版本号,各版本可能涵盖安全补丁、性能改进或新增功能。与32位Chrome相比,64位版本具备如下长处:能够处理更多内存容量,从而提升多任务作业能力;针对现代硬件的优化使其运行更为迅猛;64位版本更具备高级别的安全防护,能更周全地抵御恶意软件的侵袭。尽管如此,32位版本对于仍在使用32位操作系统的用户,或是在系统资源需求不高的场景下,依然适用。在部署Chrome浏览器时,用户需依据其个人计算机的操作系统平台,挑选匹配的版本进行安装。通过双击相应的.exe文件,安装流程将自动启动,一般包含接受使用许可、确定安装路径及构建桌面快捷方式等环节。若在安装阶段遭遇难题,可参照提示信息或联系技术支援获取协助,同时该压缩文件发布者亦表明欢迎用户以留言形式反映问题。Chrome浏览器的主要特质涵盖:直观的用户界面设计...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值