UnityでNativePluginと同様のインタフェースを持つjslibを作成することを考えます。
C#側で以下のCreate APIがあった時、JS側からhogeに値を書き込みたいとします。
JS側はEmscriptenのsetValue APIで値を書き込むことができます。
同様に構造体へも書き込むことが可能です。
C#側の定義は以下です。
JS側の実装は以下です。
参考:Emscripten : preamble.js
C#側で以下のCreate APIがあった時、JS側からhogeに値を書き込みたいとします。
[DllImport("__Internal")] public static extern int Create(ref IntPtr hoge);
JS側はEmscriptenのsetValue APIで値を書き込むことができます。
Create : function(hoge) { var some_value=1; setValue(hoge,some_value,"i32*"); }
同様に構造体へも書き込むことが可能です。
C#側の定義は以下です。
[DllImport("__Internal")] public static extern int getInfo([In,Out] InfoStructinfo); [StructLayout(LayoutKind.Sequential)] public class InfoStruct { public UInt32 width; public UInt32 height; }
JS側の実装は以下です。
getInfo: function(info) { setValue(info+0,i.width,"i32"); setValue(info+4,i.height,"i32"); return 0; }
参考:Emscripten : preamble.js
コメント