Parallel的运行结果不符合预期

kvfreedom
Posts: 69
Joined: 2024/07/11 04:36

Parallel的运行结果不符合预期

Post by kvfreedom »

1.png
1.png (71 KiB) Viewed 19924 times
触发一次事件,我预期的结果是a b,实际的结果是a
2.png
2.png (76.82 KiB) Viewed 19924 times
在10秒内触发3次事件或在1帧里触发3次事件,预期的结果是a a a b,实际的结果是a a b
3.png
3.png (88.29 KiB) Viewed 19924 times
触发一次事件,我预期的结果是a b c,实际的结果是a c
4.png
4.png (104.38 KiB) Viewed 19924 times
在10秒内触发3次事件或在1帧里触发3次事件,预期的结果是a a a b c,实际的结果是a c a c a c
Last edited by kvfreedom on 2024/07/11 05:27, edited 1 time in total.
User avatar
caitsithware
管理人
Posts: 90
Joined: 2024/03/26 01:56

Re: Parallel的运行结果不符合预期

Post by caitsithware »

您似乎无法访问该图像。
请上传到其他地方或附加文件。
kvfreedom
Posts: 69
Joined: 2024/07/11 04:36

Re: Parallel的运行结果不符合预期

Post by kvfreedom »

caitsithware wrote: 2024/07/11 05:18 您似乎无法访问该图像。
请上传到其他地方或附加文件。
图片已修改为附加文件
User avatar
caitsithware
管理人
Posts: 90
Joined: 2024/03/26 01:56

Re: Parallel的运行结果不符合预期

Post by caitsithware »

感谢您附上图片。

没有充分考虑单个Action节点连接到Parallel节点时的行为。
修改它,使所有节点都在运行并等待完成。
临时解决方法是在单个Action节点之后创建一个NextFrame任务节点,并将完成延迟一帧。
如果事件连接目标在执行过程中再次触发事件,请将事件设置为Cancellable以中途取消并重新执行。
如果您采取临时操作并启用Cancellable,则根据规范预期的正确结果如下。
  1. a -> 10秒后 b
  2. a -> a -> a -> 10秒后 b
  3. a -> c -> 10秒后 b
  4. a -> c -> a -> c -> a -> c -> 10 秒后 b
kvfreedom
Posts: 69
Joined: 2024/07/11 04:36

Re: Parallel的运行结果不符合预期

Post by kvfreedom »

caitsithware wrote: 2024/07/11 06:48 感谢您附上图片。

没有充分考虑单个Action节点连接到Parallel节点时的行为。
修改它,使所有节点都在运行并等待完成。
临时解决方法是在单个Action节点之后创建一个NextFrame任务节点,并将完成延迟一帧。
如果事件连接目标在执行过程中再次触发事件,请将事件设置为Cancellable以中途取消并重新执行。
如果您采取临时操作并启用Cancellable,则根据规范预期的正确结果如下。
  1. a -> 10秒后 b
  2. a -> a -> a -> 10秒后 b
  3. a -> c -> 10秒后 b
  4. a -> c -> a -> c -> a -> c -> 10 秒后 b
屏幕截图 2024-07-11 154516.png
屏幕截图 2024-07-11 154516.png (74.01 KiB) Viewed 19908 times
Cancellable会让Task重新运行,不能满足让未完成的Task继续运行的需求
触发一次事件并在15秒后再触发一次事件,我期望的结果是a b1 a b2 b1
期待下个版本能修复这个问题
User avatar
caitsithware
管理人
Posts: 90
Joined: 2024/03/26 01:56

Re: Parallel的运行结果不符合预期

Post by caitsithware »

可能是翻译的原因,但好像表达不准确,所以我重新整理一下内容。

首先,这是一个错误,当Parallel激活时,如果连接目的地仅为 Action 并且立即结束,Parallel也会结束。
此问题将在未来的更新中修复。
如需在修复发布之前的临时解决方案,请在 Action 之后连接 Next Frame。
LogicToolkit_Parallel_Action_NextFrame.png
LogicToolkit_Parallel_Action_NextFrame.png (54.15 KiB) Viewed 19903 times

Event 和 Parallel 是单独的功能。
Cancelable 是一种规范,允许您选择是否忽略调用并继续原始执行而不取消,或者如果在连接目标运行时调用另一个事件,则取消并从头开始重新执行。
目前没有功能可以在继续正在进行的过程的同时并行启动进一步的执行。
kvfreedom
Posts: 69
Joined: 2024/07/11 04:36

Re: Parallel的运行结果不符合预期

Post by kvfreedom »

kvfreedom wrote: 2024/07/11 07:57
caitsithware wrote: 2024/07/11 06:48 感谢您附上图片。

没有充分考虑单个Action节点连接到Parallel节点时的行为。
修改它,使所有节点都在运行并等待完成。
临时解决方法是在单个Action节点之后创建一个NextFrame任务节点,并将完成延迟一帧。
如果事件连接目标在执行过程中再次触发事件,请将事件设置为Cancellable以中途取消并重新执行。
如果您采取临时操作并启用Cancellable,则根据规范预期的正确结果如下。
  1. a -> 10秒后 b
  2. a -> a -> a -> 10秒后 b
  3. a -> c -> 10秒后 b
  4. a -> c -> a -> c -> a -> c -> 10 秒后 b
屏幕截图 2024-07-11 154516.png
Cancellable会让Task重新运行,不能满足让未完成的Task继续运行的需求
触发一次事件并在15秒后再触发一次事件,我期望的结果是a b1 a b2 b1
期待下个版本能修复这个问题
屏幕截图 2024-07-11 172122.png
屏幕截图 2024-07-11 172122.png (105.91 KiB) Viewed 19900 times
这样可以满足我的需求,如果有什么办法能只用1个事件节点实现就更好了
User avatar
caitsithware
管理人
Posts: 90
Joined: 2024/03/26 01:56

Re: Parallel的运行结果不符合预期

Post by caitsithware »

我很高兴您找到了满足您需求的方法。
我将接受使用单个事件节点的实现作为请求。
(但是,不保证实施)
Post Reply