如何在Unity中缓存图像?

时间:2015-08-11 12:41:41

标签: android caching unity3d

我想为android平台缓存图像。我使用WWW下载图像,但每次都会再次下载。 我搜索了统一文档和网络,没有发现任何有用的东西。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:4)

你可以做两件事之一

  1. 使用Asset Bundles。这是一个link to building Asset Bundles in Unity 5.x。这是一个example
  2. 资产包是一个内置功能,它非常易于集成和使用。此外,一旦使用AssetBundle下载任何资产,它也会自动缓存(默认情况下),下次你不需要重新下载。

    1. 另一种选择是在WWW.bytes使用File.WriteAllBytesApplication.persistentDataPath(System.IO命名空间)的组合。
    2. 此方法更复杂,但如果您因任何原因无法访问资产包(它是4.x中的专业版功能),则这是执行此操作的唯一方法之一。

      方法#2的部分示例

      public class TestMyDownload : Monobehaviour {
      
          public string url = "http://www.foo.com/bar.png";
      
          IEnumerator Start () {
              WWW www = new WWW(url);
              yield return www;
      
              if(www.bytes != null) {
                  System.IO.File.WriteAllBytes(Application.persistentDataPath + "/myfile.png");
                  Debug.Log("Writing Success");
              }
          }
      }
      

      编辑:只是一个FYI,方法二可以处理所有类型的数据,而不仅仅是图像。如果你100%确定你只需要图像,你也可以访问WWW.image