所以在我的项目中,我有一个图像对象,可以在整个游戏中加载各种不同的精灵。为了实现这一点,我有一个包含一堆可供游戏访问的.png的文件夹。为了使它在独立的版本中工作,我将这些图像放在以下路径中:
StreamingAssets/Question Images
但是,在Android操作系统中,我遇到了一个错误,因为如手册所述:
“在Android上,文件包含在压缩的.jar文件中(该文件与标准zip压缩文件的格式基本相同)。这意味着,如果您不使用Unity的WWW类来检索文件,则需要使用其他软件查看.jar存档中的内容并获取文件。
问题是,我不知道该如何实施,有什么想法吗?
答案 0 :(得分:0)
来自Application.streamingAssetsPath
的示例不可能访问WebGL和 Android 平台上的
StreamingAssets
文件夹。 WebGL上没有文件访问权限。 Android使用压缩的.apk文件。这些平台返回URL。使用UnityWebRequest
类访问资产。
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;
}
}
}
注意:请在智能手机上输入内容,因此无需任何担保,但我希望这个主意会变得清晰起来。