我在学习godot4的过程中做了一个demo,预期功能是点击屏幕,小人就会绕开障碍自动生成最短路径,然后移动到鼠标点击位置,但是目前存在bug,就是如果当前小人在A点,我点击B点,小人在向B点移动的过程中,如果我在点击C点,我希望它能够中断到B点的移动,直接生成当前位置到C点的最短距离,然后移动过去,但是现实是他还是会移动到B点位置,然后再走到C点。(主要脚本挂载在Node2D节点上)



我是通过NavigationServer2D的map_get_path()方法生成的最短路径,我在控制台大致看了一下打印的日志数据,应该是没有问题,Line2D节点是用来生成最短路径的连线,也没有问题,但是主要问题就在Path2D节点上,我猜测小人总是先走完第一段路线再去走第二段路线的原因是我没有清除Path2D节点中第一段路线的points数据,所以后来再每次点击事件发生的时候都清理一下Path2D的points数据。

似乎问题解决了,但是又有了新的问题,小人在点一次点击他是能够正常移动的,但是第二次点击,他就会瞬移到鼠标点击的位置,似乎Path2D节点失效了。
大佬们,这是啥原因啊,怎么解决啊?





我是通过NavigationServer2D的map_get_path()方法生成的最短路径,我在控制台大致看了一下打印的日志数据,应该是没有问题,Line2D节点是用来生成最短路径的连线,也没有问题,但是主要问题就在Path2D节点上,我猜测小人总是先走完第一段路线再去走第二段路线的原因是我没有清除Path2D节点中第一段路线的points数据,所以后来再每次点击事件发生的时候都清理一下Path2D的points数据。

似乎问题解决了,但是又有了新的问题,小人在点一次点击他是能够正常移动的,但是第二次点击,他就会瞬移到鼠标点击的位置,似乎Path2D节点失效了。
大佬们,这是啥原因啊,怎么解决啊?


