NHN Cloud Meetup 編集部
UnityプラグインをCommunicatorに統合しよう
2021.02.01
541
Unityネイティブ開発時におけるプラグインの必要性
Unityで開発されたゲームは、リリース時に多くのネイティブ機能を連動させる必要があります。
Push、Purchase、WebViewなど、モバイルプラットフォームで提供されるさまざまな機能を使用するためにプラグインの開発が必要です。
従来のプラグイン開発方式
ゲームをリリースするために、開発チームではさまざまなネイティブ機能を使用することができるプラグインを開発します。開発されたプラグインは、それを必要とする他の開発チームと共用する過程において、多くのコードが重複する可能性があり、このような重複コードで問題が発生した場合は、メンテナンスに多大なリソースが費やされることになります。
Communicatorを使用
Communicatorは従来のプラグイン開発の短所を補うため、無料で提供されています。Communicatorはプラグインの通信を担うライブラリを提供することで、プラグインにおけるコードの重複を最小限に抑えて、モバイルプラットフォームで提供されるさまざまな機能を迅速に開発できるようにサポートします。
ネイティブとの通信
- 開発者が必要とするネイティブ機能をUnityとNativeで開発し、通信のためにCommunicatorのAddReceiver APIを通じてレシーバーを登録します。
public static void AddReceiver(string domain, GpmCommunicatorCallback.CommunicatorCallback callback)
- レシーバー登録時に入力したドメインでデータを受信するレシーバーが区分されます。
- メッセージを特定のレシーバーに伝達するには、レシーバー登録時に入力したドメイン値をMessage.domainに入力します。
public class Message { public string domain; public string data; public string extra; }
- 通信に使用されるMessageオブジェクトは、dataとextraの2つのstring型のフィールドがあり、JSON、delimeterなど、さまざまなフォーマットで必要なデータを伝達することができます。
- 通信には、同期と非同期の2つの方式が提供されています。
public static GpmCommunicatorVO.Message CallSync(GpmCommunicatorVO.Message message) public static void CallAsync(GpmCommunicatorVO.Message message)
詳しい内容は、ガイドをご覧ください。
インストール方法
インストール方法を紹介します。
- Asset StoreからGamePackageManagerをインストールします。
- メニューからTools/GPM/ Managerを選択します。
- Communicatorをインストールします。
まとめ
Communicatorを使って、どのようなデータをやり取りするか色々検討してみましょう。
そして、データをどのように送受信するかは、Communicatorが解決してくれます。
Communicatorを使用することでプラグインの開発時間を削減し、ゲームコンテンツの開発に集中することができます。
GamePackageManagerには、ゲーム内でウェブページを開くことができるWebviewや、デバッグ接続なしでもゲーム内でログを見ることができるLogviewer、アセット依存関係の管理できるAssetManagementのような開発時に役立つさまざまなアセットを用意しています。