本日はHoloLensのパス調査です。
PCをはじめとしてスマートフォン、タブレットなど一般的なPCにはストレージ(保存領域)の中に多くのフォルダがあり、ディレクトリによってデータが管理されています。
例えば、スマートフォンで写真を撮影した場合iPhone、アンドロイド問わず、『写真』アプリで見ることができます。 またスマートフォンをPCに接続することで[Picture]等のフォルダの中に写真が保存されていることが確認できます。
HoloLensも同様でアプリやOSで使用するデータはディレクトリで管理され、アクセスするためにはそれぞれのパスが必要です。
今回はパスを調査していきます。
〇Application
Aookicationクラスは実行データにアクセスするクラスです。
パスはOSやデバイスごとに異なるため、Applicationクラスを用いて呼び出すことでどのデバイスでも同じパスを指定することができます。
〇Application.PersistentDataPath
Application.PersistentDataPathは永続的なパスを返します。
永続的というのは、アプリのアンインストールなどで削除されないデータという意味です。
通常セーブデータなどのデータを保存します。
〇Application.DataPath
Application.DataPathはそのアプリケーションが保存されているパスを返します。
〇Application.temporaryCachePath
temporaryCachePathはアプリ内で使用する一時的なデータを保存するパスを返します。
通常消えてしまっても構わない一時的なデータを保存します。
〇スクリプト
今回次のようなスクリプトを用意しました。
これは各パスの場所をテキストで返します。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
public class PathText : MonoBehaviour
{
[SerializeField]
TextMeshPro _persistentDataPath;
[SerializeField]
TextMeshPro _dataPath;
[SerializeField]
TextMeshPro _temporaryCachePath;
// Start is called before the first frame update
void Start()
{
_persistentDataPath.text=Application.persistentDataPath;
_dataPath.text = Application.dataPath;
_temporaryCachePath.text = Application.temporaryCachePath;
}
}
〇Unityで実行
Unityで[PathText]コンポーネントを空オブジェクトにアタッチしてTextMeshProをアタッチします。

この状態で実行することで使用しているPCでのパスの場所を見ることができます。

●Application.PersistentDataPath
C:/Users/((User名)/AppData/LocalLow/DefaultCompany/(アプリ名)
●Application.DataPath
D:/(UnityProject名)/Assets
●Application.temporaryCachePath
C:/Users/(User名)/AppData/Local/Temp/DefaultCompany/(アプリ名)
〇HoloLens 2実機で実行

●Application.PersistentDataPath
C:/Data/Useres/(ユーザー名)/AppData/Local/Packages/(アプリ名)_pzq3xp76mxafg/LocalState
●Application.DataPath
C:/Data/Users/FafaultAcount/AppData/Local/Development/Files/(ユーザー名).Release_ARM64.(アプリ名)/Data
●Application.temporaryCachePath
C:/Data/Users/(ユーザー名)/AppData/Local/Packages/(アプリ名)_pzq3xp76mxafg/TempState
これでHoloLensのパスを表示することができました。