如何做出闪电链技能?(关于唤镜触发器bug分析)



  • 闪电链效果:在初始点N0至随机点N1之间生成一道闪电,小段时间后再次在N1至随机点N2之间生成一道闪电。

    尝试办法1:先由数组保存事先选好的各个随机点,然后创建初始闪电,通过闪电播放动作结束后,启动第二循环。

    那么问题来了,动作播放结束是绿色箭头的触发器事件。所有触发器事件不知道是因为bug还是设计问题,都不能获取游戏中临时赋值的变量或者数组,也就是触发器并不按事件的顺序执行。

    尝试办法2:通过循环创建,在循环中插入等待loopindex*0.1秒来创建闪电,由于循环是异步的所以即使在循环中使用数组或者变量,等待后均不能成功获取值。

    请高手解决。



  • 你事件表要贴出来呀,我在用的时候还没有遇到过触发器不能获取数组的情况,有可能是你写错了,要看看详细的事件



  • 贴事件表吧,没看懂你在分析啥,你这样一通“分析”就变成了大家只能基于你的描述来思考可能的问题所在了。如果你认定了这是个bug,描述上会有潜意识的倾向的,万一你这个基本分析不对,后面就都带偏了,事件表和预览结果的截图往往是最直接的分析依据,可别是自己没理解和用好机制就觉得是bug啊😂
    如果只是问触发器,触发器跟非触发器的触发机制是不一样的,触发时间也不一样,多个触发器同时满足条件的瞬间是按同一事件表的顺序执行的,非触发器是固定每帧执行一次。
    循环插入等待更有问题,每次循环都是独立顺序运行的,加入等待后是没法依据等待时间逐次进行的,因为实际上事件表的动作,更像是发出指令的信号,也就是所有事件表动作只负责按序发出对应动作的执行信号,不会管之前的动作是否执行完毕,所以循环里加等待的做法我直接不推荐。



  • 虽然不知道你在分析啥,不过你说的闪电链效果也还好做:
    因为没有附加说明,所以目前的规则是:
    1、对所有目标点生效,次序按目标点与触发点的距离由近到远生效
    2、一段效果动画结束时才执行下一段效果动画
    3、允许多个闪电链效果独立运行
    演示图(中间有一段演示了第3点,同时为了演示这是个动态的效果,所以移动了目标点,不过暂时没考虑目标点时刻移动时,闪电效果跟着移动的情况(虽然也就是加个绑定和遍历)):
    undefined
    因为你要用到所谓的“临时数组”,所以我就用了临时数组的做法(实际上可以每个闪电链效果实例用实例变量记录次序列表)
    你的分析我就不看了,主要是不知道你在说啥问题😓 ,你的推论你也没有列出足够详细的论证过程,反正我是没见过你说的情况
    undefined
    ————————
    结果还是做了跟踪效果,不过事件表我就不贴了,看看效果就行:
    undefined



  • @欧拉欧拉 看了大佬的事件,已经解决了,谢谢大佬了。我的问题其实简单的说就是,触发器不能读取外部的局部变量,哪怕是在同一个组里面。



  • 这个要考虑局部变量的作用时间,默认情况下,局部变量每次重新遍历事件表开始时都会重置,而上面有位老哥已经说了,触发器和非触发器的生效时间和机制是不一样的(虽然写在同一个事件表里,但运行上两者是有差别的),所以触发器自然没法等非触发器处理完局部变量后自己再接续处理,机制上就决定了它很难准确拿到数据,不过如果把局部变量勾选静态属性,就能拿到了,因为静态局部变量不会再因重新遍历事件表而重置。


Log in to reply