我试图在我的统一项目中使用谷歌Map纹理。但我面临着同样的问题。
我检查了呼叫的记录网址,当我在浏览器中使用它时,它工作正常。我正在尝试将该纹理加载到立方体中。
这是我正在使用的代码。有人能告诉我我做错了什么,以及如何纠正吗?如果你需要更多的细节,请告诉我。
方法1 -使用WWW方法:
string googleStaticMapsURL = "https://maps.googleapis.com/maps/api/staticmap?center=42.49414,-83.40547&size=1024x1024&scale=2&maptype=roadmap&markers=size:mid|color:orange|label:abc|44.49414,-83.40547";
WWW req = new WWW(googleStaticMapsURL);
cubeObject.SetActive (true);
// Create a texture in DXT1 format
cubeObject.GetComponent<Renderer>().material.mainTexture =
new Texture2D(size, size, TextureFormat.DXT1, false);
while (!req.isDone) {
Debug.Log ("req.isdone is false");
yield return 0;
}
if (req.error == null) {
Debug.Log ("Response form Google maps texture service:: ");
req.LoadImageIntoTexture ((Texture2D)cubeObject.GetComponent<Renderer> ().material.mainTexture);
} else {
Debug.Log ("Google maps.. Req.error is:: " + req.error);
}
错误:不支援的URL。
我在一些帖子中读到WWW在iOS中运行不好,所以我尝试UnityWebRequest。
方法2 -使用UnityWebRequest方法:
string googleStaticMapsURL = "https://maps.googleapis.com/maps/api/staticmap?center=42.49414,-83.40547&size=1024x1024&scale=2&maptype=roadmap&markers=size:mid|color:orange|label:abc|44.49414,-83.40547";
UnityWebRequest www = UnityWebRequest.Get(googleStaticMapsURL);
DownloadHandlerTexture textD = new DownloadHandlerTexture ();
www.downloadHandler = textD;
yield return www.Send();
if (www.isError) {
Debug.Log ("Error in Google maps web service::" + www.error);
} else {
Debug.Log ("Time1:: " + Time.time + ".. isDone::" + www.isDone);
yield return new WaitForSeconds(3); //wait for 3 secs
Debug.Log ("Time2:: " + Time.time + ".. isDone::" + www.isDone);
while (!www.isDone) {
Debug.Log ("www.isdone is false");
}
// Show results as text
//sphereObject.GetComponent<Renderer>().material.mainTexture =
// new Texture2D(size, size, TextureFormat.DXT1, false);
Debug.Log("Setting Texture!!");
Debug.Log("Response form Google maps texture service:: "+ textD.texture.height);
cubeObject.SetActive (true);
//cubeObject.transform.parent.gameObject.SetActive (true);
cubeObject.GetComponent<Renderer>().material.mainTexture = textD.texture;
}
错误:无效操作异常:纹理尚未完成下载
但我可以看到www.isDone打印为真。你能帮我得到这个修复吗?
另外,我使用的是https版本的谷歌Map网址,但我仍然在控制台中看到下面的警告。打印的网址只显示https协议。
您正在使用通过http下载。Unity目前将NSAllowsArbitraryLoads添加到Info.plist以简化转换,但它将很快被删除。请考虑更新到https。
1条答案
按热度按时间50few1ms1#
我不知道为什么它不能与您一起工作,只是将此脚本附加到多维数据集对象,它工作正常: