C# 在Unity上显示Google API地图

C# 在Unity上显示Google API地图,c#,unity3d,C#,Unity3d,今天早上,我有一个工作地图,并试图得到一些下拉对象,在这个过程中,我现在搞砸了,没有一个工作地图 我有一个包含GoogleAPI脚本的rawimage对象,我已经将rawimage对象分配给了rawimage变量。我得到一个红色的问号 在某一点上,它就像字面上一样工作,直到我停止应用程序并再次播放,没有接触任何代码或任何东西。它成功了,然后就没有了。我认为这与API键有关,因为我试图事先更改它 using System.Collections; using UnityEngine; using

今天早上,我有一个工作地图,并试图得到一些下拉对象,在这个过程中,我现在搞砸了,没有一个工作地图

我有一个包含GoogleAPI脚本的rawimage对象,我已经将rawimage对象分配给了rawimage变量。我得到一个红色的问号

在某一点上,它就像字面上一样工作,直到我停止应用程序并再次播放,没有接触任何代码或任何东西。它成功了,然后就没有了。我认为这与API键有关,因为我试图事先更改它

using System.Collections;
using UnityEngine;
using UnityEngine.UI;

public class GoogleAPI : MonoBehaviour
{

    public string url; 

    public RawImage map;

    public float lon;
    public float lat;

   public int zoom;
   public int mapHeight;
   public int mapWidth;
   public int scale;

   LocationInfo li;

   public enum mapType { roadMap, satelite, hybrid, terrain };
   public mapType mapSelected;

   private IEnumerator mapCoroutine;

   IEnumerator GoogleMaps(float lat, float lon)
   {


    url = "https://maps.googleapis.com/maps/api/staticmap?center=" + lat + 
          "," + lon + "&zoom=" + zoom + "&size=" + mapHeight + "x" + 
           mapWidth + "&Scale=" + scale+ "&maptype=" + mapSelected +
           "&key=AIzaSyDh1_nS-l7nWOFWvt0Gg9-9dY_11qWzK_Q";


    WWW www = new WWW(url);
    yield return www; 
    map.texture = www.texture;


}



void Start()
{
    map = this.gameObject.GetComponent<RawImage>();
    StartCoroutine(GoogleMaps(lat, lon));
    lat = 53.26532f;
    lon = -4.42914f;
    Debug.Log("new maps");
}

}
使用系统集合;
使用UnityEngine;
使用UnityEngine.UI;
公共类古格里皮:单一行为
{
公共字符串url;
公共图像地图;
公众浮标;
公共浮动lat;
公共整数缩放;
公共地图高度;
公共地图宽度;
公共int量表;
位置信息李;
公共枚举地图类型{路线图、卫星、混合、地形};
选择公共地图类型;
私有IEnumerator映射程序;
IEnumerator谷歌地图(浮点lat、浮点lon)
{
url=”https://maps.googleapis.com/maps/api/staticmap?center=“+lat+
“,“+lon+”&zoom=“+zoom+”&size=“+mapHeight+”x”+
mapWidth+“&Scale=“+Scale+”&maptype=“+mapSelected+
“&key=AIzaSyDh1_nS-l7nwowvt0gg9-9dY_11qWzK_Q”;
WWW=新的WWW(url);
收益率;
map.texture=www.texture;
}
void Start()
{
map=this.gameObject.GetComponent();
start例程(谷歌地图(lat,lon));
lat=53.26532f;
lon=-4.42914f;
Debug.Log(“新映射”);
}
}
我的问题是,你能看出我错在哪里吗?我看过一些教程,但不多。他们都略有不同,我尝试过其他东西,但仍然没有乐趣

控制台不显示任何错误或信息

谢谢。

解决了

错误与谷歌API密钥有关。他们限制每天生成地图的次数。我在Update()中添加了一些代码,然后生成了一个新的地图超过1000次,用完了所有的go

注册了免费试用,并在谷歌API页面上为该项目添加了账单,现在它可以正常工作了


哈哈,我已经干了一整天了

您没有在控制台中看到“新地图”吗?此外,您正在构建url,将lat、long、zoom、height、width和scale设置为0。作为一个一般性提示,尝试在您的协同程序中添加一些日志记录,以查看您是否正在进入其中,以及在哪里可能会挂断。哦,是的,很抱歉,它显示了“新地图”。我试着把WWW=newwww(url);下面的两行代码是try,catch和debug日志,但它表示产量不能在try中实现。在代码中还有什么地方有调试日志?在
WWW=new WWW(url)
前面放一个调试日志,然后记录url。你可以把它粘贴到浏览器中,看看你从谷歌得到了什么反应。哦,太酷了!可以看到api密钥已过期。我已经生成了一个新的密钥,它仍然显示过期!?这次得到的是g.co/staticmaperror/signature,而不是一个红色问号。只是将同一个url粘贴到了谷歌上,现在它只是显示一张有错误的灰色地图图片,而不是任何书面信息。