これを機能させるために数え切れないほどの試みをしましたが、実行時にエラーが発生します。ゲーム エンジンのコンテンツを管理するアセット マネージャーを作成しようとしており、スクリプトには lua と luabind を使用しています。すべてをコンパイルし、クラスと変数をバインドし、lua から基本的な変数を取得することは、これまでのところ問題ありませんでした。
私の問題は、資産クラスのインスタンスを格納するために std::vector を使用していて、ベクトルが luabind とうまくいかないように見えることです。私の C++ プログラムはレンダリングなどに使用するため、このベクターが必要になることはわかっています。
マネージャー クラスと変数 (資産クラスを含むベクターを含む) をバインドすると、すべてが正常にコンパイルおよび実行されます。私の lua スクリプトでは、新しいオブジェクトを正常に作成できますが、それらにアクセスしようとすると実行時エラーが発生します。
すべてを要約するには:
ゲーム オブジェクトの情報またはその他のデータに関する情報を保持するクラスがあります。
アセット クラスのベクトルを含む別のクラスがあります。
通常の lua テーブルと同じようにこのベクトルにアクセスしようとすると、実行時エラーが発生します。
では、アセット マネージャー クラスのクラスを変更できるようにするには、C++ と luabind で何をすればよいでしょうか?