3

ゲームにスクリプト エンジンを埋め込もうとしています。私は C# で書いているので、IronPython がぴったりだと思いました。

複雑なことに、Windows 7 64 ビットで Visual Studio 2010 RC1 を使用しています。

IronRuby は期待どおりに動作しますが、Ruby や Python の構文にはあまり詳しくありません。

私がやっていること:

        ScriptEngine engine = Python.CreateEngine();
        ScriptScope scope = engine.CreateScope();

        //Test class with a method that prints to the screen.
        scope.SetVariable("test", this); 

        ScriptSource source = 
          engine.CreateScriptSourceFromString("test.SayHello()", Microsoft.Scripting.SourceCodeKind.Statements);

        source.Execute(scope);

これにより、「'TestClass' オブジェクトに属性 'SayHello' がありません」というエラーが生成されます。

「self.test.SayHello()」を使用しても、この正確なセットアップは IronRuby で正常に動作します。

ただし、IronRuby は IronPython ほど成熟していないように見えるため、IronRuby の使用には慎重です。距離が近ければそちらに行くかもしれません。

何か案は?これは単純なものでなければならないことはわかっています。

4

2 に答える 2

5

私はちょうどこれを持っていました...あなたはすべてのコードを公開していませんが、SayHelloは正しいと思いますが、SayHello関数を含むクラスも公開する必要があるため、Pythonがそれを見ることができます。

于 2010-05-06T16:50:21.233 に答える
1

これは、IronPython から見えるようにするためにクラス「test」を「public」として宣言しなかったことが原因である可能性があります。

于 2010-05-11T09:31:23.917 に答える