unity怎么使用unity3d 嵌入百度地图嵌入高德地图

1135人阅读
游戏引擎(35)
unity3d(46)
之前弄过安卓环境下高德地图地理定位,时间一长有点忘记了,于是重新整合了下,做成了一个简单的插件。
unity版本5.3.6,高德地图定位sdk版本3.0
使用方法,导入AMapHelper.unitypackage包,其中,AMapHelper下有demo场景供参考
必须修改Plugins/Android目录下的AndroidManifest.xml文件中
package=&com.BackflowLake.pokemon&将包名改为对应名称。
&meta-data android:name=&com.amap.api.v2.apikey& android:value=&f0a6d14dacbc8574e70e&&&/meta-data&修改此处的key。
获取高德开发key参见
/api/android-location-sdk/guide/creat-project/get-key/#key
在对应的场景中,添加Amaplocation脚本,
该脚本中,startLocation方法是开始定位,endLocation方法是结束定位。
每次获得定位信息会触发OnLocationChanged事件,并将定位信息写到locationInfo对应的属性中
using UnityE
using System.C
using UnityEngine.UI;
public class AMapDemo : MonoBehaviour
private AMapLocationHelper.AMapL
void Start ()
location = GetComponent&AMapLocationHelper.AMapLocation& ();
ShowTxt (&scene start&);
ShowTxt (location.ToString ());
void startLocation ()
ShowTxt (&start&);
location.StartLocation ();
location.locationChanged += OnLocationC
public void endLocation ()
ShowTxt (&end&);
location.locationChanged -= OnLocationC
location.EndLocation ();
void OnLocationChanged ()
txt.text = &&;
ShowTxt (&OnLocationChanged&);
if (!location.error) {
ShowTxt (&定位结果来源:& + location.locationInfo.Accuracy);
ShowTxt (&纬度:& + location.locationInfo.Latitude.ToString ());
ShowTxt (&经度:& + location.locationInfo.Longitude.ToString ());
ShowTxt (&精度信息:& + location.locationInfo.Accuracy.ToString ());
ShowTxt (&地址:& + location.locationInfo.Address);
ShowTxt (&城区:& + location.locationInfo.District);
ShowTxt (&国家:& + location.locationInfo.Country);
ShowTxt (&省:& + location.locationInfo.Province);
ShowTxt (&城区:& + location.locationInfo.City);
ShowTxt (&街道:& + location.locationInfo.Street);
ShowTxt (&门牌:& + location.locationInfo.StreetNum);
ShowTxt (&城市编码:& + location.locationInfo.CityCode);
ShowTxt (&地区编码:& + location.locationInfo.AdCode);
ShowTxt (&海拔:& + location.locationInfo.Altitude.ToString ());
ShowTxt (&方向角:& + location.locationInfo.Bearing.ToString ());
ShowTxt (&定位信息描述:& + location.locationInfo.LocationDetail);
ShowTxt (&兴趣点:& + location.locationInfo.PoiName);
ShowTxt (&提供者:& + location.locationInfo.Provider);
ShowTxt (&卫星数量:& + location.locationInfo.Satellites.ToString ());
ShowTxt (&当前速度:& + location.locationInfo.Speed.ToString ());
ShowTxt (&时间:& + location.locationInfo.Time.ToLongTimeString ());
} catch (Exception ex) {
ShowTxt (ex.Message);
ShowTxt (location.errorInfo);
private void ShowTxt (string info)
txt.text = info + &\r\n& + txt.
demo在手机运行效果如下
源码,编译出来的demo,导入用的包都放到了github上了。
/wuyt/AMapHelper
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:488346次
积分:5782
积分:5782
排名:第3910名
原创:137篇
评论:155条
(3)(8)(6)(2)(3)(2)(3)(4)(1)(3)(7)(11)(7)(3)(2)(1)(3)(2)(1)(1)(1)(1)(2)(4)(3)(2)(4)(2)(3)(3)(3)(3)(1)(7)(13)(2)(6)(8)【代码片-5】 [Unity3D]Unity3D游戏开发之Unity与Android交互调用研究
标签: unity&&&&android&&&&androidjavaobject&&&&插件&&&&c#&&&&
using UnityE
using System.C
public class AndroidAPI : MonoBehaviour {
void Start()
//设置当前游戏体的名字,在Android中我们将使用这个名字
this.name=&Vabille&;
//定义一个方法以改变摄像机背景颜色,我们将在Android中调用这个方法
void SetCameraColor()
//设置摄像机背景颜色
Camera.main.backgroundColor=new Color(1.0F,0.5F,0.5F);
void OnGUI ()
//通过API调用对话框
if(GUILayout.Button(&调用Android API显示对话框&,GUILayout.Height(45)))
//获取Android的Java接口
AndroidJavaClass jc=new AndroidJavaClass(&com.unity3d.player.UnityPlayer&);
AndroidJavaObject jo=jc.GetStatic&AndroidJavaObject&(&currentActivity&);
//构造参数
string[] mObject=new string[2];
mObject[0]=&Unity3D&;
mObject[1]=&Unity3D成功调用Android API&;
//调用方法
jo.Call(&ShowDialog&,mObject);
//通过传值打开Activity
if(GUILayout.Button(&调用Android API中打开Activity&,GUILayout.Height(45)))
//获取Android的Java接口
AndroidJavaClass jc=new AndroidJavaClass(&com.unity3d.player.UnityPlayer&);
AndroidJavaObject jo=jc.GetStatic&AndroidJavaObject&(&currentActivity&);
//打开博主的博客
jo.Call(&StartWebView&,&http://blog.csdn.net/qinyuanpei&);
//通过API调用Toast
if(GUILayout.Button(&调用Android API中的Toast&,GUILayout.Height(45)))
//获取Android的Java接口
AndroidJavaClass jc=new AndroidJavaClass(&com.unity3d.player.UnityPlayer&);
AndroidJavaObject jo=jc.GetStatic&AndroidJavaObject&(&currentActivity&);
//打开博主的博客
jo.Call(&ShowToast&,&为Unity3D编写Android插件是件苦差事!&);
//通过API调用Toast
if(GUILayout.Button(&调用Android API中的震动方法&,GUILayout.Height(45)))
//获取Android的Java接口
AndroidJavaClass jc=new AndroidJavaClass(&com.unity3d.player.UnityPlayer&);
AndroidJavaObject jo=jc.GetStatic&AndroidJavaObject&(&currentActivity&);
//打开博主的博客
jo.Call(&SetVibrator&,40);
//通过API调用Toast
if(GUILayout.Button(&通过SendMessage调用Unity中的方法&,GUILayout.Height(45)))
//获取Android的Java接口
AndroidJavaClass jc=new AndroidJavaClass(&com.unity3d.player.UnityPlayer&);
AndroidJavaObject jo=jc.GetStatic&AndroidJavaObject&(&currentActivity&);
//打开博主的博客
jo.Call(&InvokeUnity&,&&);
我要留言技术领域:
取消收藏确定要取消收藏吗?
删除图谱提示你保存在该图谱下的知识内容也会被删除,建议你先将内容移到其他图谱中。你确定要删除知识图谱及其内容吗?
删除节点提示无法删除该知识节点,因该节点下仍保存有相关知识内容!
删除节点提示你确定要删除该知识节点吗?&>&&>&&>&&>&Unity3D高德地图SDK演示apk
Unity3D高德地图SDK演示apk
上传大小:20.72MB
Unity3D高德地图SDK演示apk
综合评分:5(2位用户评分)
所需积分:0
下载次数:24
审核通过送C币
创建者:amixuse
创建者:otldan
创建者:huang3513
课程推荐相关知识库
上传者其他资源上传者专辑
移动开发热门标签
VIP会员动态
android服务器底层网络模块的设计方法
所需积分:0
剩余积分:720
您当前C币:0
可兑换下载积分:0
兑换下载分:
兑换失败,您当前C币不够,请先充值C币
消耗C币:0
你当前的下载分为234。
Unity3D高德地图SDK演示apk
会员到期时间:
剩余下载次数:
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。}

我要回帖

更多关于 unity3d 高德地图 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信