Lua から C コードを呼び出す

プロジェクトの Lua スクリプトで C コードを実行するように設定できます。これはパフォーマンスが重要である場合に効果的です。通常、C で記述された関数は、Lua の同等の関数よりも高速で実行されるためです。さらに、サードパーティ製ライブラリを統合したり、別のアプリケーション用に記述された既存の C コードを再利用するために、この方法を使用できます。

これを実行する場合、次のようないくつかのオプションがあります。

すべての場合において、C コードをダイナミック リンク ライブラリにコンパイルし、ランタイムのロードでエンジンがそのライブラリを使用できるようにする必要があります。

注: このセクションの内容は、以前に C コードの記述とコンパイルの経験があるプログラマに推奨するものです。バインド レイヤの管理や、FFI ライブラリの使用に関連する型変換などの複雑さが加わらないとしても、C それ自体が初心者にとっては習熟が難しいものです。

プラットフォームのサポート

ダイナミック リンクをサポートし、LuaJIT にダイナミックにリンクするプラットフォームをゲームがターゲットとしている場合にのみ、ダイナミック リンク ライブラリ内で C コードを実行できます。

別のオプション: エンジン プラグインを記述する

ダイナミック リンクをサポートしていないプラットフォームで C コードを実行する必要がある場合、またはこのセクションのトピックで説明したいずれかの方法を使用しても Lua からコードを機能させることができない場合は、Stingray エンジンで公開されているプラグイン API を使用するという、もうひとつの方法があります。

この場合、現時点では Stingray ソース リポジトリにアクセスする必要があります。詳しくはオートデスクの担当者にお問い合わせください。また、『Stingray 開発者用ヘルプ』も参照してください。