問題タブ [luabridge]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Luabridge バインディングのオーバーロードされた演算子
*/+- 演算子を実装する単純な vec3 クラスを作成しました。
次のような方法で、luabridge を介してこれらの演算子をバインドしたいと考えています。
そのため、次のように lua で関数を呼び出すことができます。
vec3 クラスの *operator にブレークポイントを配置するとヒットしますが、rhs フロートは未定義です。
lua コードを次のように変更すると:
次に、rhs vec3 も未定義です。そのため、引数が正しく渡されていないようです。
次に、登録を次のように変更しました。
しかし、vec3 のメンバー データ、つまり float 引数が未定義になりました。このブレークポイントを超えると、luabdridge は次の例外をスローします。
私が考えることができる唯一のことは、どういうわけか関数を正しく登録していないということです。
私の質問は次のとおりです。演算子を正しくバインドし、引数の型が正しいことを確認するにはどうすればよいですか?また、lua で正しく呼び出すにはどうすればよいですか?
c++ - LuaBridge または Lua を使用して C++ オブジェクトを Lua 関数に渡す
C++ から構築された大きなオブジェクト (Lua に公開したもの) があり、Lua で処理したいと考えています。
を使用して任意の単純型を Lua 関数 ( int
、string
)lua_pushinteger
に渡すことができますlua_pushstring
が、C++ クラスを渡すことはできません。lua_pushlightuserdata
オブジェクトへのポインターをプッシュしようとしましたが、うまくいきませんでした。
どうやってやるの?それは可能ですか?
C++ で構築された特定のインスタンスを Lua に渡したいことに注意してください。コンストラクターを公開して、単純にクラスを使用できますが、クラスをシングルトンにする必要があります。これは受け入れられません。