我正在开发一款游戏,该游戏具有捕获屏幕截图并将其存储在Windows中的项目文件夹和Android中的com.package文件文件夹中的功能。麻烦的两个步骤是:
1)当我想从本地图库或通过Google照片应用程序查看图片时,找不到图片。但是,当我在com.package文件夹中搜索时,它们就在其中。
2)如何在手机的内部存储器中为游戏创建一个单独的文件夹,并将所有图片存储在那里。
要保存图片,我正在使用Application.persistentpath。还有其他我想念的地方吗?
答案 0 :(得分:0)
要将图片保存在手机图库可以访问的路径中,
首先,您应该获得读/写权限(READ_EXTERNAL_STORAGE / WRITE_EXTERNAL_STORAGE)。
您可以在Unity编辑器中设置选项“玩家设置”>“其他设置”>“配置”>“写权限”>“外部(SDCard)” (https://docs.unity3d.com/2018.3/Documentation/Manual/class-PlayerSettingsAndroid.html)< / p>
或者您可以自己请求许可(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");
}