Kii Cloud SDK の導入手順

プロジェクトの設定

下記の手順に従って、Kii Cloud SDK をアプリケーションのプロジェクトに追加してください。

  1. Unity を起動した状態で、KiiCloudUnitySDK.unitypackage をダブルクリックします。

  2. ファイル一覧が表示されますので、全てのファイルをインポートします。

  3. "Edit" - "Project Settings" - "Player" から "Player Settings" を開き、"Settings for Android" タブでインターネットアクセスを必須にします。

  4. 以下の手順で空のゲームオブジェクトを作成し KiiInitializeBehaviour をバインドします。

    まず、空のゲームオブジェクトを作成します。

    次に KiiInitializeBehaviour を、作成した空のゲームオブジェクトにドラッグアンドドロップします。KiiInitializeBehaviour は、KiiCloudUnitySDK.dll の横にある三角形のアイコンをクリックすると表示されます。

    最後に、ゲームオブジェクトの名前を KiiInitializer などのわかりやすい名前に変更します。

    ゲームオブジェクトは、ドラッグアンドドロップによって階層構造で整理できますが、作成した KiiInitializer は必ずルートのゲームオブジェクトにバインドしてください。下位の階層にバインドすると、シーンを移動したときに、初期化した情報が失われることがあります。

  5. 作成したゲームオブジェクトのプロパティで 開発者ポータルにて取得した AppID と AppKey を設定します。また Site は、開発者ポータルにて指定したサーバー設置場所に対応する値(Kii.Site.JPKii.Site.USKii.Site.CN3Kii.Site.SG、または Kii.Site.EU)を指定します。

    Server Url プロパティは接続するサーバーを直接指定する為のプロパティで、通常設定する必要はありません。たとえば Site プロパティに Kii.Site.JP を設定する代わりに Server Url に https://api-jp.kii.com/api を設定しても同じ意味になります。

    その他、SDK 内で Kii Cloud を呼び出す際のタイムアウト(秒) も設定できます。

注意:SDK を更新する場合、全ての DLL ファイルを一旦削除して、再度コピーする必要があります。この操作を行うと、KiiInitializeBehaviour に設定していた AppID や AppKey 等が失われてしまいます。
SDK の更新後は必ず KiiInitializeBehaviour の再設定を行ってください。

AppID と AppKey をモバイルアプリに埋め込んでも、アクセス制御を正しく行えば安全性は確保できます。詳細は、セキュリティ をご覧ください。

コンパイラフラグの設定

Unity 5 以降で iOS 向けのモジュールをビルドすると、そのままでは Xcode 上で KiiIOSSocialNetworkConnector.mm がコンパイルエラーになります。

以下の方法でコンパイルオプションを設定しておくとエラーを解決できます。

  1. Unity 5 の Assets/Plugin/iOS より、"KiiIOSSocialNetworkConnector.mm" をクリックします。

  2. Inspector より、"Compile flags" に "-fno-objc-arc" を指定します。

  3. Inspector の "Apply" ボタンをクリックします。

Kii Cloud SDK の初期化タイミング

KiiInitializeBehaviourMonoBehaviour を継承したクラスで Awake メソッドで SDK の初期化処理を行っています。 この初期化処理が完了する前に Kii Cloud SDK の API を呼び出すと InvalidOperationException がスローされます。

もし他のゲームオブジェクトにバインドしたスクリプトの MonoBehaviour.Awake で Kii Cloud SDK の API を呼び出す場合は、次のようにスクリプト実行順設定KiiInitializeBehaviour が他のスクリプトよりも先にロードされるように設定します。

  1. 任意のスクリプトを選択して Inspector に表示されている "Execution Order..." ボタンを押します。

  2. Inspector に表示されている Default Time の下にある + ボタンを押して、KiiInitializeBehaviour を選択します。

  3. KiiInitializeBehaviour のロードされるタイミングに -100 などを設定して他のスクリプトよりも優先してロードされるように設定します。

また Kii Cloud SDK 初期化後に何か任意の処理を行いたい場合は以下のように KiiInitializeBehaviour を継承したクラスを作成し、base.Awake を呼んだ後に、その処理を書くことができます。 この場合 KiiInitializeBehaviour の代わりに MyKiiInitializeBehaviour を空のゲームオブジェクトにバインドします。

public class MyKiiInitializeBehaviour : KiiInitializeBehaviour {
  public override void Awake()
  {
    base.Awake();
    // The Kii Cloud SDK has been initialized.
    // You can call Kii Cloud APIs.
  }
}

複数のシーン構成を使う場合

複数のシーンを使うゲームでは、初めのシーンで KiiInitializeBehaviour による初期化を行うだけで正しく動作するように設計されています。

  • KiiInitializeBehaviour で初期化された情報は、ガベージコレクションの対象外となるように実装されています。別のシーンに遷移しても、初期化済みの内部情報は保持されます。

  • KiiInitializeBehaviour の初期化処理が複数回実行されても、2 回目以降は何もしません。別のシーンに遷移後、初めのシーンに戻っても、再生成された KiiInitializeBehaviour では初期化処理を再実行しません。

なお、KiiInitializeBehaviour が階層のルートに配置されたゲームオブジェクトにバインドされていないと、シーンを移動したときに破棄されて、この前提が成り立たなくなります。

スクリプトの実装

Kii Cloud SDK を使用するすべてのスクリプトに以下の宣言を追加します。これによって API を参照できます。

using KiiCorp.Cloud.Storage;

その他、利用する機能に応じて KiiCorp.Cloud.Storage.ConnectorKiiCorp.Cloud.Analytics の using を行います。必要なネームスペースは Mono Develop の補完機能などで自動入力するか、Monodoc で確認することができます。

ビルドの設定

Unity の Player Settings では選択できるオプションのうち、Kii Cloud SDK に関連するオプションを以下に示します。

  • API Compatibility Level

    スクリプトから利用できる API を .NET 2.0 に近いものにするか、そのサブセットにするかの設定です。アプリケーションのサイズと起動時間の長さに影響します。

  • Script Call Optimization

    iOS でスクリプトでの例外処理をサポートするかどうかのオプションです。スクリプトの実行速度に影響します。

  • Stripping Level

    Unity ではビルドサイズを削減するためにコードストリッピングを利用できます。これはスクリプトから参照されないクラスやメソッドを DLL ファイルから削除してメインのバイナリサイズおよび付随する DLL ファイルのサイズを削減する機能です。

  • Scripting Backend

    スクリプトを .NET Framework 環境(Mono)で実行するか、IL2CPP により C++ に変換・ビルドして実行するかを設定できます。IL2CPP により、実行速度の向上が期待できるとともに、iOS での 64 bit 対応のオプション(Architecture より ARM64 または Universal)を選択できます。

Kii Cloud SDK for Unity で設定できる組み合わせは、以下のとおりです。

iOS

API Compatibility Level Script Call Optimization Stripping Level 対応
.NET 2.0 Slow and Safe Disabled
Strip Assemblies
Strip ByteCode
Use micro microlib
Fast but no Exceptions Disabled
Strip Assemblies
Strip ByteCode
Use micro microlib
.NET 2.0 Subset Slow and Safe Disabled
Strip Assemblies
Strip ByteCode
Use micro microlib
Fast but no Exceptions Disabled
Strip Assemblies
Strip ByteCode
Use micro microlib

iOS で 64 bit 版の実行モジュールをビルドする場合、Scripting Backend から IL2CPP を選択後、Architecture より ARM64 または Universal を選択してください。

Android

API Compatibility Level Stripping Level 対応
.NET 2.0 Disabled
Strip Assemblies
Strip ByteCode
Use micro microlib
.NET 2.0 Subset Disabled
Strip Assemblies
Strip ByteCode
Use micro microlib