StateTree如果Start失败的话,GlobalTask不会退出

StateTreeExecutionContext.cpp:1175行 调用了StartEvaluatorAndGlobalTasks,触发了GlobalTask的EnterState。但是随后的1191行 调用SelectState失败的话,会导致在1223行执行失败处理,随后整个Start流程结束,没有调用StopEvaluatorAndGlobalTasks把那些开启的GlobalTask结束掉。

重现步骤

  1. 创建一个新的StateTree,只包含一个Root State,把它的Enter Condition强制设置为false,这会让StateTree无法选中一个初始的进入状态,导致Start失败
  2. 给StateTree加一个Global Task
  3. 运行StateTree,可以打断点发现Global Task的ExitState没有执行

您好,这个问题5.7已经修复了,我可能得查下具体是哪个cl

麻烦查一下具体CL,感谢

不客气的,看起来这个提交被合并为一个很大的CL,不太好剥出来