私が作っているゲームでは、主に C# で開発していますが、Lua コルーチンを使用していくつかのゲーム ロジックを処理したいと考えています。これは、複数のフレームにわたるアクションをうまく表現できるからです。Lua を実際に使用したことがないので、これが機能するかどうかはわかりません。理想的には、C# のゲーム更新関数で、実行する 1 つ以上の Lua コルーチンをキューに追加し、各フレームでキューを反復処理して、各コルーチンを生成または終了するまで実行できるようにしたいと考えています。これが可能かどうか、可能であれば実装方法を知りたいだけです。これは、Lua が使用する「lua_dofile」パラダイムに適合しないように思われるためです。
私が何を意味するかを示すための C# 疑似コードを次に示します。
GameUpdate()
{
// Update game logic
// (which may add one or more Lua coroutines to the queue)
// Update input, physics, sound, etc
// In Lua:
// For each coroutine in queue,
// execute it until it reaches a yield,
// or it finishes, whichever comes first
}
GameRender()
{
// Render a frame
}
更新: この記事 (http://www.gamedev.net/topic/585128-luainterface-and-coroutines/) は、私が探していた答えを提供します。要するに、それは可能です。