Unity3D:图像未保存在HDD中

时间:2014-11-20 08:57:40

标签: image unity3d

我正在使用相机开发移动应用。我的问题是snapped的图片没有保存在app根文件夹中。以下是用于捕获屏幕的代码片段。

Application.CaptureScreenshot("SavedScreen.png");

但这并没有在内部存储中保存任何内容。任何人都可以帮助我。 欢呼声。

1 个答案:

答案 0 :(得分:1)

Application.CaptureScreenshot()至少会出现两个微妙的使用问题:

  1. 在iOS上它不接受路径,它只会写入Documents文件夹。所以你的“SavedScreen.png”将会出现在:

    Application.persistentDataPath +“/ screenshot.png”;

  2. 它是异步的,因此文件将花费几帧(如果不是一秒钟)写入文件系统。并且它没有告诉你何时完成。

  3. 我更喜欢完全控制ReadPixels,但是如果你想使用CaptureScreenshot,你应该在访问文件前至少等待2秒:

    void CaptureScreenshot()
    {
      StartCoroutine(CaptureScreenshotCo());
    }
    
    IEnumerator CaptureScreenshotCo()
    {
      string file = "screenshot.png";
      string path = string.Format("{0}/{1}", Application.persistentDataPath, file);
    
      // capture screenshot async 
      Application.CaptureScreenshot(file);
    
      // wait for file to be saved
      yield return new WaitForSeconds(2f);
    
      // now do something with file...
    }