2011-10-11 11 views
1

私はC#でLuaInterfaceを使用しており、すべてが正しく設定されています。C#からLuaスクリプトにオブジェクトを渡す

私は何をすることができるようにしたいことは、スクリプトは、私が送ることができるプレーヤーオブジェクトへのアクセス権を持っていることを、スクリプトがlua.DoFile()を使用して開始されたときということです...

現在のコード:

public static void RunQuest(string LuaScriptPath, QPlayer Player) 
{ 
    QMain.lua.DoFile(LuaScriptPath); 
} 

しかし、わかるように、スクリプトはPlayerオブジェクトにアクセスできません。

答えて

5

2つのオプションがあります。最初のものは、あなたのプレーヤーのLuaのグローバル変数を作ることです。

QMain.lua['player'] = Player 

次にあなたが

あなたのスクリプトの中で2番目のオプションをplayerにもアクセスできるようになりますスクリプトは、プレーヤーを受け入れる関数を定義することですパラメータとして。 QMain.lua [ "プレーヤー"]を使って

public static void RunQuest(string LuaScriptPath, QPlayer Player) 
{ 
    QMain.lua.DoFile(LuaScriptPath); // this will not actually run anything, just define a function 
    QMain.lua.GetFunction('RunQuest').Call(player);   
} 
+0

=プレーヤーは、うまく働いた:

function RunQuest(player) ...code... end 

とあなたのC#のコードは次のようになります:あなたの現在のスクリプトが今...code...が含まれているのであれば、それは含まれています。 ありがとう! – FrenchyNZ

関連する問題