一开始我写的是对一个 id 列表的循环,用于生成敌人,每一次循环中都会 wait 一下作为生成敌人的间隔,循环的 index 对应敌人的不同生成参数
在测试中发现,敌人的生成设置只会使用 index = list.length-1 对应的生成参数
经过 debug 可以发现,foreach 的 index 仍然是正常传出来的,但是 wait 之后获取到的 index 全是 list.length-1
如图下所示,输出为:
0
1
111111
111111

后来我就想用事件做一个循环,每一次生成事件开始时都检查一遍生成记录是否大于等于规定生成数量,不是则进入生成流程,完成流程吼生成记录自增
但是测试之后发现这个脚本收不到事件
这个脚本是 LevelMgr 的 SFM 的 SubFlowScript,所以我在 LevelMgr 的 FlowScriptController 所引用的 FlowScript 里面接受我命名的生成事件,确实是接收到了
为了想办法让 SubFlowScript 接收到事件,我尝试了使用 thiscomponent 和 global event,都不行
最后只能使用首尾相连的笨方法了
唉,我不理解



在Unity使用NodeCanvas的FlowCanvas进行游戏逻辑开发时,遇到一个foreach循环与Wait结合的问题,导致循环内Wait后只使用了最后一个index的参数。同时,尝试使用事件进行状态管理,但SubFlowScript无法接收到事件。尝试了thiscomponent和全局事件无果,最后通过调整流程实现功能,但对此现象感到困惑。
最低0.47元/天 解锁文章
16万+

被折叠的 条评论
为什么被折叠?



