我正在开发一款游戏,它具有捕获屏幕截图的功能,并将它们存储在Windows的项目文件夹和Android中的com.package文件夹中。令人不安的两个步骤是:
1)……
要将图片保存在手机图库可以访问的路径上,
首先,您应该获得读/写权限(READ_EXTERNAL_STORAGE / WRITE_EXTERNAL_STORAGE)。
您可以在Unity Editor中设置选项 的 “播放器设置”> “其他设置”> “配置”> “写权限”> “外部(SD卡)” 强> ( https://docs.unity3d.com/2018.3/Documentation/Manual/class-PlayerSettingsAndroid.html )
或者你可以自己申请许可( https://docs.unity3d.com/Manual/android-RequestingPermissions.html )。
其次,您应该将图片保存在外部存储器中,如下所示。
using System.IO; void SavePicture(byte[] texture) { string path = GetExternalStoragePath() + "/picture"; string fileName = "picture.png"; if (!Directory.Exists(path)) Directory.CreateDirectory(path); File.WriteAllBytes(path + "/" + fileName, texture); } string GetExternalStoragePath() { AndroidJavaClass env = new AndroidJavaClass("android.os.Environment"); AndroidJavaObject dir = env.CallStatic<AndroidJavaObject>("getExternalStorageDirectory"); return dir.Call<string>("toString"); }