【问题标题】:How to access texture/models from cloud/WEB at run time in android app using Unity 3D?如何在使用 Unity 3D 的 Android 应用程序中运行时从云/WEB 访问纹理/模型?
【发布时间】:2016-04-01 19:30:27
【问题描述】:

我一直在尝试使用 WWW 类在运行时从 WEB 下载和加载纹理或其他模型。 该应用程序在 Unity 编辑器上运行良好,但是当我将其部署在 android 设备上时,它不会加载/下载纹理。 请有人指导我。 我在脚本中使用了以下代码。

void Start()
{
StartCoroutine(loadMovie());
}
IEnumerator loadTexture()
{
WWW www = new WWW("http://images.earthcam.com/ec_metros/ourcams/fridays.jpg");
yield return www;
// Debug.Log(www.movie.duration + " <--- wwww");
if (www.error != null)
{
Debug.Log("Error: Can't load texture! - " + www.error);
yield break;
}
else
{
Texture2D texture = www.texture as Texture2D;
Debug.Log("Texture loaded");
Debug.Log(www.texture);
gameObject.GetComponent<Renderer>().material.mainTexture = texture;
}
}

【问题讨论】:

  • 那么你得到哪个错误?
  • 我没有收到任何错误。当我只是在 android 设备上部署这个应用程序时,它不会从 WEB/Cloud 下载/加载纹理。虽然它在 Unity Editor 中运行良好。
  • 尝试在屏幕某处的 GUI 上打印日志,这样您就可以准确地看到设备上发生的情况。如果您有 eclipse 或 android studio,您可以直接在系统上查看日志。快速的一种是在移动屏幕上打印日志。
  • @AffanShahab 嗨,我也试过这个。它没有显示错误,但是在统一编辑器和 android 设备上运行应用程序时,进度值(修改下面给出的代码后在 while 循环中使用的 www.progress)是不同的。但是出现了同样的问题,我没有显示纹理。

标签: android azure unity3d azure-blob-storage


【解决方案1】:

首先,去掉Debug.Log(www.texture);从代码中,然后重试您的代码。

您有 IEnumerator loadTexture() 但您正在调用 StartCoroutine(loadMovie()); 。这意味着您可能正在调用另一个函数,或者这可能是您问题中的一种类型。

void Start()
{
StartCoroutine(loadTexture());
}

IEnumerator loadTexture()
{
WWW www = new WWW("http://images.earthcam.com/ec_metros/ourcams/fridays.jpg");

//Wait for download to finish
while(!www.isDone){
Debug.Log("Progress: "+www.progress);
yield return null;
}

if ((www==null) || (www.error != null))
{
Debug.Log("Error: Can't load texture! - " + www.error);
yield break;
}

gameObject.GetComponent<Renderer>().material.mainTexture = www.texture;
}

未编译但应该可以工作。

编辑: 从您发送的文件中,将最低 API 级别更改为 4.1。

【讨论】:

  • 是的。我发现了错误并在 start 方法中更正了它(loadTexture)。但这仍然行不通。
  • 试试我上面贴的代码。只需复制它并用您当前的代码替换它。
  • 我也试过你的代码。但我仍然面临同样的问题。虽然我已经在 Android Manifest 中授予了 Internet 权限,但纹理没有在 Android 中加载。
  • 你能试试另一个图片链接看看会发生什么吗?
  • 是的,我也尝试过,但出现了同样的问题。
猜你喜欢
  • 2019-11-12
  • 1970-01-01
  • 1970-01-01
  • 2020-02-15
  • 2017-03-06
  • 2016-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多