mikan_daisuki’s blog

IT系サラリーマンの日記。前職ではスマホゲームを、現在はアプリを作ってます。



UnityEditor(MacOSX)でPlugins機能を使う方法

UnityのDocumentがいまいちでツラかったので、補足情報をまとめます。

 

公式Document

docs.unity3d.com

 

関連Blog

d.hatena.ne.jp

http://monkeycoders.tumblr.com/post/22414181728/macos向けのnativepluginを作成する

monkeycoders.tumblr.com

 

 

公式Documentにのっとったやり方

  • MacOSXでサポートしてるloadable bundleという形式(拡張子は.bundle)を使う
    • XCodeのビルド設定で、"Mach-O Type"を"Dynamic Library"にする
    • "Architectures"を32bitと64bitのUniversalにする
    • "Build Active Architecture Only"をNoにする
  • Assets/Plugins に置いてDllImportする
    • Assets/Plugins/Hoge.bundleを置いていれば、[DllImport("Hoge.bundle")]とする
    • Plugins以下にフォルダ作って置いて相対パスで指定してもDllImportがうまくいかない

非公式だがこれでも動く、というやり方

  • dylibをビルドして、格納するときに拡張子をむりやり.bundleに書き換える
    • libHoge.dylibだったら、Hoge.bundleなどとする
  • この方法だとPlugins以下にフォルダ作って置いて、相対パスで指定してもDllImportがうまくいく

Editorで動かすときの注意点

Editorの停止はアプリの終了とは処理が異なるので、

pluginの終了処理をEditor向けに入れる必要があります。

終了処理がなされず、初期化済みなままEditorが停止してしまいます。