大家好!

我正在开发一个城市建造游戏,游戏中有模拟功能,而当前模拟功能都是在主线程中执行的。

因此,当模拟一个新天时,如果花费了很长时间,玩家可能会感到明显的卡顿。

例如:

玩家旋转摄像机

模拟更新(想象一下持续1秒)

玩家看到卡顿

模拟更新结束

玩家摄像机最终旋转

我想问一下更有经验的朋友们,是否可以让模拟代码在非主线程中执行,即使模拟花费了很长时间,玩家也不会因为模拟而感到卡顿。

重要:

我不是要并行执行模拟。

我只想在非主线程中执行模拟。

模拟基本上只使用Unity API(除了可等待的),所以我认为我可以做到平滑的执行。几乎所有模拟代码都是C#类。

这是否可以消除卡顿?我应该这样做吗?我可能会遇到的问题是什么?

感谢提前!