コガネブログ

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

【Unity】Android で外部キャッシュの保存領域のパスを取得する関数を自作してみる

概要

UnityEngine.Application.temporaryCachePath

と同様の文字列を返す関数を自作してみる

ソースコード

using UnityEngine;

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

使用例

using UnityEngine;

public class Test : MonoBehaviour
{
    private void Awake()
    {
        Debug.Log( AndroidUtils.GetExternalCacheDir() );
    }
}
/storage/emulated/0/Android/data/【パッケージ名】/cache

参考サイト様