コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】Android でユーザーがアクセスできない内部データの保存領域のパスを取得する関数

ソースコード

using UnityEngine;

public static class AndroidUtils
{
    public static string GetFileDir()
    {
        using ( var player = new AndroidJavaClass( "com.unity3d.player.UnityPlayer" ) )
        using ( var activity = player.GetStatic<AndroidJavaObject>( "currentActivity" ) )
        using ( var file = activity.Call<AndroidJavaObject>( "getFilesDir" ) )
        {
            if ( file == null ) return string.Empty;
            return file.Call<string>( "getAbsolutePath" );
        }
    }
}

使用例

using UnityEngine;

public class Test : MonoBehaviour
{
    private void Awake()
    {
        Debug.Log( AndroidUtils.GetFileDir() );
    }
}

シングルユーザーの場合

/data/data/【パッケージ名】/files

マルチユーザーの場合

/data/user/0/【パッケージ名】/files

参考サイト様