移动组件的MoveToAsync好像有点问题,如果多次调用MoveToAsync,会取消前一次移动,这个是正常的, 但是会出现携程A去取消携程B中的移动计时器MoveTimer, 取消的时候,计时器并没有立马停止执行,会执行完已经触发的最后一次。
取消移动的函数会清除掉路径,那计时器最后一次立马又会去拿路径计算,会导致获取NextTarget越界。
TimerComponent.Instance?.Remove(ref self.MoveTimer); 不是取消了计时吗?
egametang 携程A取消计时器,携程B的计时器同时触发了一次计时器执行会出现这种情况吧!
如图所示:
你有多线程跑逻辑了吧