如何访问Steaming Assets文件夹?

时间:2019-05-20 15:00:50

标签: android visual-studio unity3d

所以在我的项目中,我有一个图像对象,可以在整个游戏中加载各种不同的精灵。为了实现这一点,我有一个包含一堆可供游戏访问的.png的文件夹。为了使它在独立的版本中工作,我将这些图像放在以下路径中:

StreamingAssets/Question Images

但是,在Android操作系统中,我遇到了一个错误,因为如手册所述:

“在Android上,文件包含在压缩的.jar文件中(该文件与标准zip压缩文件的格式基本相同)。这意味着,如果您不使用Unity的WWW类来检索文件,则需要使用其他软件查看.jar​​存档中的内容并获取文件。

问题是,我不知道该如何实施,有什么想法吗?

1 个答案:

答案 0 :(得分:0)

来自Application.streamingAssetsPath

  

不可能访问WebGL和 Android 平台上的StreamingAssets文件夹。 WebGL上没有文件访问权限。 Android使用压缩的.apk文件。这些平台返回URL。使用UnityWebRequest类访问资产。

使用UnityWebRequestTexture

的示例
private void Start() 
{
    StartCoroutine(GetTexture());
}

private IEnumerator GetTexture() 
{
    // in general I would always avoid to have spaces in file-paths
    var path = Path.Combine(Application.streamingAssetsPath, "QuestionImages", "exampleImage.png");

    using(var www = UnityWebRequestTexture.GetTexture(path))
    {
        yield return www.SendWebRequest();

        if(www.isNetworkError || www.isHttpError) 
        {
            Debug.LogErrorFormat(this, "Unable to load texture due to {0} - {1}", www.responseCode, www.error);
        }
        else 
        {
            Texture myTexture = ((DownloadHandlerTexture)www.downloadHandler).texture;
        }
    }
}

注意:请在智能手机上输入内容,因此无需任何担保,但我希望这个主意会变得清晰起来。