2016-03-21 17 views
2

私の経験から、Mono.Cecilのドキュメントは半稀であり、どこにも答えが見つからないようです。 Unity3DゲームのDLLの1つを修正して新しいクラスを追加しようとしていて、そのクラスに「Update」というメソッドを挿入します。いったん完了したら、IL命令を挿入して、Input.GetKeyDown boolをunityEngineから呼び出したいとします。しかし、私はそれを実際にどのように参照するかを理解しているようです。私がこれをやってみると、別のアセンブリファイルを参照して呼び出す方法

Instruction IL2 = method.Body.GetILProcessor().Create(OpCodes.Call,UnityEngine.Input.GetKeyDown); 

私は間違いを知りました。私がこの問題の唯一の人ではないと確信しているので、どんな助けも大いに評価されます。

私はhttp://pastebin.com/1dug0LmA

+0

を使用してこれを行う方法を発見しましたか?また、リンクする代わりにコードをここに含めることができますか? – svick

+0

問題のコードを変更したり、新しいメソッドを追加して新しいクラスを追加したり、再コンパイルしたり、ILを使いこなすのではなくDLLを使用するだけでは問題ありませんか?これを必要としているユースケースは何ですか? – ManoDestra

答えて

2

で見ることができている完全なコード私はあなたがどのようなエラーを取得している

asm.MainModule.Import((typeof(<type>).GetMethod("<Method Name>"))); 
関連する問題