U-CREATES.の「たぶん」まいにち制作中。

U-CREATES.の「たぶん」まいにち制作中。

◆Webサイト、スマートフォンアプリ制作をしている個人事業主のブログです。
◆オフィシャルWebサイトはこちら。
http://u-creates.com/

前回はIndicatorViewプラグイン(iOS/Android版)を実装し、iOS/Android端末で通信時等で利用するインジケータを表示しました。今回はアプリキャッシュ機能のプラグインを開発します。

【アプリキャッシュ機能とは?】
◆アプリケーション固有の設定値等を保存するファイルのことです。例えば音量、振動などが良い例ですね。
◆UnityだとPlayerPrefsというクロスプラットフォームなAPIが用意されています。

UnityでクロスプラットフォームなAPIが用意されているにも関わらず、このプラグインを開発する理由は、SwiftやJavaで実装されたiOS/Androidプラグイン内部で設定値を設定/取得するために必要だからです。
iOS/AndroidプラグインでUnitySendMessageをコールする→コールバッグでPlayerPrefsへアクセスするという手法もあったりしますが、この仕組みだと値の設定のみのサポートという一方通行になってしまうため不便な手法ですね。

【アプリキャッシュ機能(iOS版)を実装する】
◆以前紹介したiOSプラグイン(iOS/Swift版)を用いて実装しました。
Unity側の実装ではiOSプラグイン内部で設定した値を取得するgetterしか用意していません。GetSwitchPreferenceなので、名称のとおりスイッチのON/OFF状態を取得します。
Swift版の実装では、アプリキャッシュ機能自体はiOSSDKから提供されているUserDefaults(Objective-C的にはNSUserDefaults)を用いています。概要には「persistently(永続化)」と記載されていますが、利用しているアプリを端末から削除するとデータ消えるので注意が必要です。実装自体はiOSSDKから提供されているUserDefaultsの標準的な使い方に従って値を設定/取得しているだけのかなり簡単な実装ですね。

上記のiOSプラグインは後ほど紹介するPreferenceControllerPluginで利用されています。

おそらく今まで開発したプラグインの中で最も簡単なプラグインかもしれませんので、自作してみてはいかがでしょうか。