Unity-将屏幕截图保存到android gallery文件夹

时间:2018-10-11 11:36:47

标签: android unity3d path screen-capture

我正在尝试从一个统一的应用中捕获屏幕截图,并将其存储在图库中。

ScreenCapture.CaptureScreenshot(Application.dataPath + "SomeLevel.png");

应用程序数据路径指向APK文件本身-如何将其重定向到图库?

2 个答案:

答案 0 :(得分:0)

尝试使用Application.persistentDataPath而不是Application.data路径

也查看此

user guide

答案 1 :(得分:0)

您需要一个插件来将图像保存到图库。这适用于Android和iOS。 Android要求在保存图像后刷新图库。 NativeGallery 插件是免费的,并且适用于Android和iOS,可通过NativeGallery.SaveImageToGallery函数来实现此目的。您可以here获得它。这样可以节省您制作自己的时间。

要使用插件保存图像,必须放弃ScreenCapture.CaptureScreenshot函数,并使用ReadPixels函数自己手动截取屏幕截图,将其转换为png或jpeg,然后使用NativeGallery.SaveImageToGallery功能。

IEnumerator TakeAndSaveScreenshot()
{

    yield return new WaitForEndOfFrame();

    Texture2D screenImage = new Texture2D(Screen.width, Screen.height);
    //Get Image from screen
    screenImage.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0);
    screenImage.Apply();
    //Convert to png
    byte[] imageBytes = screenImage.EncodeToPNG();

    //Save image to gallery
    NativeGallery.SaveImageToGallery(imageBytes, "AlbumName", "ScreenshotName.png", null);
}

用法

StartCoroutine(TakeAndSaveScreenshot());