2

C# から Lua 関数にアクセスする LuaInterface に問題があります。

このように定義された LuaFunction がある場合

function object:OnEvent()
  -- Do something
end

これは、次のような通常の呼び出しによる C# からのアクセスである可能性があります

(object["OnEvent"] as LuaFunction).Call();

パラメータなし。しかし、Lua での関数の定義を見ると、「:」を使用して関数を定義しています。このように書き直すことができますが、これは同じです。

function object.OnEvent(self)
  -- Do something
end

これまでのところ、すべて問題ありません。しかし今、OnEvent を別の関数に置き換えます。

function Replacement(self)
  -- Do something other
end

object.OnEvent = Replacement

そして今、私は問題を抱えています。この場合、(自分用の) パラメータを指定して関数を呼び出す必要がありました。これを行わないと、エラーが発生します。

この問題は、次の 2 つの方法で解決できます。

  1. LuaInterface は、毎回 ":" を使用して自分自身のパラメーターを使用してメソッドを呼び出す必要があるとします。
  2. この関数が必要とするパラメーターの数を LuaInterface から取得できます。

しかし、このことの1つをどのように行うのですか?

ありがとうございました。

4

0 に答える 0