請教關於邏輯在Update中計算造成卡頓的解決方法

各位大神,

我目前有一個戰鬥場景,
由於在 update 事件中與 dt 參數連動,實現角色移動控制,
所以在該角色node狀態為閒置時,會觸發 A星尋路 邏輯,

問題來了@@
當A星尋路的路徑短的時候還沒有感覺,
但若搜尋的路徑一旦變長,就有可能讓整個畫面卡頓0.5~1秒

試了很多方法,
但畢竟JS中不能寫Multi-Thread,所以試到現在還沒有解決辦法…

想請教各位大神這該往什麼方向做解決?

小弟感激不盡 :joy: ((跪拜~~

如果你的项目只针对 Web 平台,A* 寻路是可以写在 web worker 中的,相当于多线程
如果你的项目也需要针对 Native 平台,可以考虑用 C++ 实现算法,然后 JS 调用

1赞

客户端的话,可以试试把 AStar 拆分成跨越多帧才执行完毕。或者交由服务端进行计算。

1赞

謝謝 Panda大神提供思路,
我的項目是Native的,
我來試著在C++裡調用pThread來完成異步算法試試,謝謝 :smiley:

謝謝Jare大神提供思路,
我的確沒有想過您提供的這幾種方式,
我再多寫幾種嘗試看看哪種比較適合目前的情境,感謝您 :smiley: