UnityとSwiftのやり取りを進めていたのですが、なかなかうまく行かなかったので、一旦初心に帰り、Objective-CとUnityのやり取りを確認しようと思います。
とても簡単なUnityのネイティブプラグインの作り方 - 渋谷ほととぎす通信
この辺りの記事を思い出しながら始めます。
qiita.com この記事が非常にコンパクトにまとめられててありがたい。
ディレクトリ構成
Assets/ Plugins/ iOS/ -SampleObjC.mm -SamplePlugin.cs -Test.cs
拡張子を.m
から.mm
に変更する理由はC++を内包できるためです
このようなファイル構成です。
以下上記3ファイルのサンプルソースコードです。
extern "C"
について
特に壁にぶつからずスムーズに実装できました。
ただSampleObjC.mmを書く時にテキストエディタやMonoDevelopで記述するとコード補完が効きません。Xcodeで開いてもファイル単品をオープンするだけではコード補完が効かず、もっと複雑な処理を書く場合は結構厳しい気がしました。
そこで、Xcodeプロジェクトをネイティブプラグインのフォルダに作ってコード補完が効く状態にします。
XcodeのFile > New > ProjectからCocoa Touch Framwork
を選択。
適当なProductNameを付けて、Languageを Objective-C
を選択します。
File > New > FileからObjective-C File
を選択。
SampleObjCと命名。以下のディレクトリに入れます。
Xcode上でSampleObjC.mmにリネームします。
あとはコード補完の利くSampleObjC.mmをいじるだけです。以上。
環境
- Unity2017.1.0f3
- Xcode 8.3.3
- macOS 10.12.4