Magic Leap 1 ローカルデータの保存方法 Unity編
この記事は、Magic Leap Advent Calendar 2021 の1日目です。
Magic Leap 1 アプリケーションによるデータ保存と取り出す方法について説明します。
セキュアでないデータの保存/読込する方法
Unityから提供している PlayerPrefs を使用することで、はMagic Leap 1でもデータ保存/読込を行うことができます。
使用方法については以下のブログ記事がわかりやすいかと思います。
セキュアデータの保存/読込する方法
パスワードや個人情報といった機密性が高いデータを保存する場合、Magic Leap が提供しているMLSecureStorageを使用します。
保存例:
MLSecureStorage.StoreData("key", Encoding.UTF8.GetBytes("Magic Leap"));
MLSecureStorage.StoreDataで保存します。上記の例ではバイト配列で保存するMLSecureStorage.StoreDataを使用してます。
BinaryFormatter.Serialize() を使用して、データをバイトにシリアライズして保存するMLSecureStorage.StoreData<T> (string dataKey, T value)も用意されています。
読込例:
byte[] data = new byte[0];
MLSecureStorage.GetData("key", ref data);
string result = System.Text.Encoding.UTF8.GetString(data);
MLSecureStorage.GetDataで保存したデータを取得します。上記の例では読み込んだデータをバイト配列に格納した後、文字列データに変換しています。
BinaryFormatter.Deserialize() を使用して、 データをデシリアライズした後、指定した値の型として返却するMLSecureStorage.GetData<T>()も用意されています。
削除方法:
MLSecureStorage.DeleteData("Magic Leap");
MLSecureStorage.DeleteData を実行すると保存しているデータが削除されます。
セキュアデータの格納場所
アプリケーションストレージのdocuments/C2/.securestorage 配下にバイナリが保存されます。
まとめ
ゲームのハイスコアのような情報は、UnityのPlayerPrefsを使用することができ、セキュアな情報については、Magic Leap が提供しているMLSecureStorage を使用するという使い分けがベターな気がしました。
参考
安全なストレージ
https://developer.magicleap.com/ja-jp/learn/guides/lumin-sdk-secure-storage
UnityEngine.XR.MagicLeap.MLSecureStorage Class Reference
宣伝
2021年12月16日(木)にMagic Leap Meetup vol.4 がオンラインで開催します。参加費用は無料です。(参加受付中)
最後に
OnePlanet XR
OnePlanet XR はAR/MR技術に専門特化したコンサルティングサービスです。豊富な実績を元に、AR/MR技術を活用した新たな事業の立ち上げ支援や、社内業務のデジタル化/DX推進など、貴社の必要とするイノベーションを実現いたします。
MRグラスを活用した3Dモデル設置シミュレーション
ご相談から受け付けております。ご興味ございましたら弊社までお問い合わせください。
お問い合わせ先:https://1planet.co.jp/xrconsulting.html
OnePlanet Tech Magazine
様々な技術記事を定期的に投稿しています。