有没有办法在 Unity 3D 中但在移动设备(Android 和 iOS)上显示谷歌地图(甚至其他地图也可以)?
即使是付费插件也可以。
您可以使用 Unity 的WWW.texture和 Google 的静态地图 API将其地图渲染为 GameObject 上的纹理。对于我的例子,我使用了一架飞机,没什么特别的。我在示例中使用的图像 URL 直接取自 Google API 页面。请注意,您需要使用自己的API 密钥,我将该值留空。如果您在没有 API 密钥的情况下运行我的示例,您将收到 403 错误。
using UnityEngine;
using System.Collections;
public class GoogleMaps : MonoBehaviour {
string exampleUrl = "http://maps.googleapis.com/maps/api/staticmap?center=Brooklyn+Bridge,"+
"New+York,NY&zoom=13&size=600x300&maptype=roadmap&markers=color:blue%7Clabel:S%7C40.702147,-74.015794"+
"&markers=color:green%7Clabel:G%7C40.711614,-74.012318"+
"&markers=color:red%7Ccolor:red%7Clabel:C%7C40.718217,-73.998284"+
"&sensor=false";
string key = "&key=YOUR_API_KEY"; //put your own API key here.
IEnumerator Start() {
WWW www = new WWW(exampleUrl+key);
yield return www;
renderer.material.mainTexture = www.texture;
}
}
前段时间,我开始为 unity3d 开发基于地图的框架:ActionStreetMap。当前版本 (0.7) 支持以下功能:
您可以在此处找到 Web 演示版本。
我的插件谷歌地图视图正是这样做的:https ://assetstore.unity.com/packages/tools/integration/google-maps-view-82542
适用于 Android 和 iOS。这是原生视图,因此性能非常好。唯一的限制是您不能在其上显示 Unity 场景对象。