本日は HoloLens の技術調査枠です。
以前、HoloLens での設定ファイル読み書きについて調査を行いました。
bluebirdofoz.hatenablog.com
このとき、書き込み先としてLocalAppData/AppName/LocalStateフォルダを指定していました。
この指定をカメラロールフォルダに切り替えてみます。
前回作成したスクリプトのディレクトリ参照をKnownFolders.CameraRollに切り替えます。
・AppSettingManager.cs
/// <summary> /// アプリ設定ディレクトリパス /// 実行環境によって参照ディレクトリを変更する /// </summary> private string SettingFileDirectoryPath() { string directorypath = ""; #if WINDOWS_UWP // HoloLens上での動作の場合、LocalAppData/AppName/LocalStateフォルダを参照する // directorypath = Windows.Storage.ApplicationData.Current.LocalFolder.Path; // ↓ // HoloLens上での動作の場合、カメラロールを参照する directorypath = Windows.Storage.KnownFolders.CameraRoll.Path; #else // Unity上での動作の場合、Assets/StreamingAssetsフォルダを参照する directorypath = UnityEngine.Application.streamingAssetsPath; #endif return directorypath; }
カメラロールを参照するには権限の設定が必要です。
Edit -> Project Settings -> Player から Publishing Settings の Capabilities を開きます。
PicturesLibrary にチェックを入れておきます。
アプリを hololens にインストールして起動すると……。
UserFiles/CameraRoll に settings.xml が書き込まれました。
LocalAppData/AppName/LocalState ではなく UserFiles/CameraRoll を利用するメリットとしてはアプリ再インストール時にフォルダが削除されない点があげられます。
再インストール後も設定を継続して持ちたい場合は AppName ディレクトリ配下に情報を保持しない方が良いです。