Sadao Tokuyama
Magic Leap 1 ローカルデータの保存方法 Unity編
見出し画像

Magic Leap 1 ローカルデータの保存方法 Unity編

Sadao Tokuyama

この記事は、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 を実行すると保存しているデータが削除されます。

セキュアデータの格納場所

画像1

アプリケーションストレージの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

https://developer-documentation.magicleap.com/public/v0.23.0/UnityAPI/class_unity_engine_1_1_x_r_1_1_magic_leap_1_1_m_l_secure_storage.html

宣伝

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

様々な技術記事を定期的に投稿しています。


Sadao Tokuyama
Magic Leap 公式のアンバサダー。ARスタートアップ会社OnePlanet所属。SIerとして16年間、システム開発の従事。2020年8月に株式会社OnePlanetに入社。OnePlanetではARアプリのR&D開発を担当。