私はUnityでC#を使ってコーディングしてWebGLを開発しています。私はブラウザのJavaScriptを使用する必要がありますので、マーシャリングを使用してC#でメソッドを呼び出す.jslibを記述してください。マーシャリングを使用してJavaScriptコールバックメソッドをC#メソッドに設定することはできますか?
// Javascript in .jslib called from C# using static extern
// action being the C# method that I want to call
// On callback I get -> TypeError: action is not a function
SetOnOpen: function (action) {
$jsobj.onopen = function() {
action();
};
},
が、私はこれらのそれぞれを試してみたが、やっているように見えません。私はそうのように、C#のアクションへのFunc、またはイベント・ハンドラをJavaScriptのコールバックを設定するため
は可能ですそれは適切です。私はC++がC#関数を呼び出すことができることを知っていますが、JavaScriptは何らかの形で通信する必要があります。試み:
[DllImport("__Internal")]
private static extern void SetOnOpen(ref OnOpenHandler handler);
[DllImport("__Internal")]
private static extern void SetOnOpen(ref Action action);
[DllImport("__Internal")]
private static extern void SetOnOpen(IntPtr handler);
は、どんなに私がしようとするもの、私はJavaScriptにオーバー渡しているオブジェクトが関数ではないことを示す例外TypeErrorを取得していません。私が試した:
- は、参考文献、のIntPtrを使用してアクションとイベントデリゲート
- を使用して、これはことも可能である場合もない
誰もが知っていますか?私が言ったように、以前はC++の.dllでC#メソッドを呼び出していたので、.jslibからC#のメソッドを呼び出すことは可能でした。
[この回答は役に立ちましたか?](http://stackoverflow.com/questions/35183253/unity3d-upload-a-image-from-pc-memory-to-webgl-app) – gman