夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

HoloLensでパスを調べる

本日はHoloLensのパス調査です。

PCをはじめとしてスマートフォンタブレットなど一般的なPCにはストレージ(保存領域)の中に多くのフォルダがあり、ディレクトリによってデータが管理されています。

例えば、スマートフォンで写真を撮影した場合iPhone、アンドロイド問わず、『写真』アプリで見ることができます。 またスマートフォンをPCに接続することで[Picture]等のフォルダの中に写真が保存されていることが確認できます。

HoloLensも同様でアプリやOSで使用するデータはディレクトリで管理され、アクセスするためにはそれぞれのパスが必要です。

今回はパスを調査していきます。

〇Application

Aookicationクラスは実行データにアクセスするクラスです。

パスはOSやデバイスごとに異なるため、Applicationクラスを用いて呼び出すことでどのデバイスでも同じパスを指定することができます。

docs.unity3d.com

〇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をアタッチします。

f:id:Holomoto-Sumire:20201010185543j:plain

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

f:id:Holomoto-Sumire:20201010185835j:plain

●Application.PersistentDataPath

C:/Users/((User名)/AppData/LocalLow/DefaultCompany/(アプリ名)

●Application.DataPath

D:/(UnityProject名)/Assets

●Application.temporaryCachePath

C:/Users/(User名)/AppData/Local/Temp/DefaultCompany/(アプリ名)

〇HoloLens 2実機で実行

f:id:Holomoto-Sumire:20201010191015j:plain

●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のパスを表示することができました。