How to do things like StartCoroutine in ue4?

由于C++十分底层,协程的实现需要有一个保护当前堆栈的过程。这对于C++这样的语言来说,要实现起来相对于C#/Mono平台的Unity来说,要困难很多。我这个也是从其他C++程序员那里获得的信息,据说Asio的基于宏的Stack-full 协程是性能与易用性上最好的协程实现。

但是虚幻引擎引入第三方库十分困难,我刚刚拆分了一下Boost::Coroutine2,发现里面还是包含了大量的.lib的。如果要引入第三方库,你可能需要有一些配置,包括把库文件放入ThirdParty之类的。不能够直接引入虚幻的编译机制。

我自己的状态机实现是没有使用协程的。事实上设计模式中状态机模式并没有说必须要协程完成。你是可以在不用协程的情况下,借助Tick完成的。