0

LuaInterface ライブラリを使用して、ゲーム用のスクリプト エンジンを作成しています。Lua でクラスをインスタンス化しようとすると、エラーが発生します。エラーは次のとおりです。

"./Scripts/sv_worldgen.lua:2: attempt to call global 'Campfire' (a string value)"

sv_worldgen.lua の場所 (全体):

function GenerateChunk(worldChunk, chunkGridPosition)
    tf = Campfire()
    tf:SetPosition(chunkGridPosition)
end

Campfireは C# のクラスであり、CLRPackage の例ともちろんLuaInterface Referenceに従って lua に公開されているようです。このエラーを回避できないようです。念入りに検索しました。私が管理できるスクリプトの他の唯一の動作は、同様のエラーをスローしますが、どこに"(a table value)". 私は何を間違っていますか?前もって感謝します!

を明示的に実行してみCampfire._ctor()ました_ctor()が、文字列値です。

4

1 に答える 1

0

これは、CLRPackage を使用し、それを使用して最初にアセンブリを読み込むことで解決されました。

//Lua
JASG = CLRPackage("JASG", "JASG")

その後、次を使用してクラス名を実際の C# クラスにリンクできます (これは、Lua でアクセスする前に行う必要があります)。

//Lua
Campfire=JASG.Campfire;

そして、通常のインスタンス化は

//Lua
cf = Campfire()
于 2014-04-08T14:29:38.347 に答える