如何在Android图片库中保存从unity捕获的照片?



我有一个有效的脚本,可以用AR相机拍照并将其保存在Android的数据文件中,如下所示:

screenShotName = "Dorot" + System.DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss") + ".png";
File.WriteAllBytes(Application.persistentDataPath + "/" + screenShotName, screenshot.EncodeToPNG());
GameObject.Find("MainCanvas").GetComponent<Canvas>().enabled = true;

如何使用Android图像库的正确路径更改持久数据路径

谢谢。

我正在使用Unity Native Gallery插件来做同样的事情。

这是我的代码

public class ScreenshotTaker : MonoBehaviour
{
public bool takingScreenshot = false;
public void CaptureScreenshot()
{
StartCoroutine(TakeScreenshotAndSave());
}
private IEnumerator TakeScreenshotAndSave()
{
takingScreenshot = true;
yield return new WaitForEndOfFrame();
Texture2D ss = new Texture2D(Screen.width, Screen.height, TextureFormat.RGB24, false);
ss.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0);
ss.Apply();
// Save the screenshot to Gallery/Photos
string name = string.Format("{0}_Capture{1}_{2}.png", Application.productName, "{0}", System.DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss"));
Debug.Log("Permission result: " + NativeGallery.SaveImageToGallery(ss, Application.productName + " Captures", name));
takingScreenshot = false;
}
}

你可以按照JackMini36在他的回答中所说的那样,通过使用插件来做到这一点。或者你可以写一段代码来做到这一点。

但具有挑战性的部分将是使其在Android设备上出现跨平台和权限问题。这是一篇很好的描述文章,您可以在其中学习在unity应用程序中将屏幕截图保存在图库中的不同方法。 http://unitydevelopers.blogspot.com/2018/09/save-screenshot-in-unity3d.html

最新更新