Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Emscripten で Unity WebGLのプラグインを作る

Emscripten で Unity WebGLのプラグインを作る

Naruto Suzuki

October 05, 2016
Tweet

Other Decks in Programming

Transcript

  1. Unity のWebGL ビルド Unity 5.2 辺りから対応 NPAPI 等のプラグインを使わず、HTML5 とWebGL,WebAudio などの標準機能だけで動くゲー

    ムが出力できる 主にWindows or Mac 向け( スマホではまだ不安定) 最近のゲー ムアプリにとって、 Web ブラウザはiOS,Android に続く、 第三のター ゲットになりつつある。
  2. JavaScript の場合 .jslib という形式で作って Plugins/WebGL/ に置く WebGL ビルド時にリンクしてくれる。 C/C++ の場合

    .c/.cpp を Plugins/WebGL/ に置く WebGL ビルド時にEmscripten でコンパイルしてくれる
  3. プラグインをEmscripten ビルドする 1) 出力ファイルを .bc としてビルドする e m c c

    M y P l u g i n . c p p - o M y P l u g i n . b c ※ .bc : LLVM bitcode file 2) .bc ファイル を Plugins/WebGL/ に置く そうするとWebGL ビルド時にリンクしてくれる。 スタティックライブラリの感じに似てますね
  4. MyPlugin.cs ↑iOS 向けネイティブプラグインと同じ感じ MyPlugin.cpp e x t e r n

    " C " v o i d D o P l u g i n F u n c t i o n ( c o n s t c h a r * m e s s a g e ) { / / S o m e t h i n g c o d e } ↑ 他の環境と同じ感じ c l a s s M y P l u g i n { [ D l l I m p o r t ( " _ _ I n t e r n a l " ) ] p u b l i c s t a t i c e x t e r n v o i d D o P l u g i n F u n c t i o n ( s t r i n g m e s s a g e }
  5. 注意 Emscripten のバー ジョン LLVM bitcode はバー ジョン間で互換性がなくなる可能性があるの で、 なるべくEmscripten

    SDK のバー ジョンは合わせましょう。 Unity Emscripten Unity 5.3, 5.4 1.34.1 Unity 5.5β 1.36.7 ( ただ実際そんなに変わらないです。)