千金一刻莫空度,老大无成空自伤。这篇文章主要讲述unity调用Android百度地图相关的知识,希望能为你提供帮助。
由于个人是android小白,在这个配置上面被折磨了很久,因此写下这篇文章
工具:eclipse + unity5.6.1
首先去百度地图开发者平台下载你需要的资源,我只需要显示地图和定位,这个时候你一定要注意了,一定要把你所需要的功能全部选择了再下载,要不然BaiduLBS_Android.jar包里面只有你选择的那个单个需求的类,下载下来之后将BaiduLBS_Android.jar类复制个副本,将后缀改成.rar格式,解压出来(后面会用到里面的assets文件夹)
文章图片
eclipse中配置:
首先将下载好的包导入eclipse
文章图片
项目中的类:
文章图片
考虑到后面要用unity来调用Android的方法,因此要建立一个UnityActivity继承UnityPlayerActivity,unity调用这个UnityActivity中的StartMapActivity()方法启动BaiduLocation activity
package com.map.unity; import com.unity3d.player.UnityPlayerActivity; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class UnityActivity extends UnityPlayerActivity{ Context mContext = null; // Button requestLocButton; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mContext = this; } public void StartMapActivity(String name) { Intent intent = new Intent(mContext,BaiduLocation.class); //intent.putExtra("name", name); this.startActivity(intent); } }
BaiduLocation是参考百度地图的示例根据我自己的需求做的,建议大家也自己去看一下百度官方给的案例
【unity调用Android百度地图】
文章图片
又有一个坑来了,参考百度地图示例写完BaiduLocation.java后我运行百度地图不出来,查了下才知道要配置上面的第二个类DemoApplication.java并在AndroidManifest.xml文件配置(这个时候我没有继承UnityPlayerActivity而是继承Activity,写了个按钮启动百度地图)
文章图片
AndroidManifest.xml配置我就不多说了,基本上网上都有,文章下边我会给出项目源码,包括eclipse项目+unity项目,需要的话下载看看吧
至此Android端的坑踩完了
unity:
文章图片
结构在这里
第一个坑是libs中的,可以仔细观察下与eclipse中的不同,unity中是armeabi-v7a,eclipse是arm64-v8a
文章图片
第二个坑是assets,上面我有说过要解压BaiduLBS_Android.jar,就是用在这里,要拷贝进去,不然显示不了地图的。
推荐阅读
- 嵌入式linux/android alsa_aplay alsa_amixer命令行用法
- Android 使用SQLite存储以及读取Drawable对象
- Android组件--碎片(fragment)
- android精选源码,知乎阅读瀑布流loading弹窗扫描二维码简洁的MVP
- Android(防止过快点击造成多次事件 问题)
- Android Studio配置NDK开发环境
- 使用Swagger辅助开发Fabric Application的Web API
- android环境配置
- mybatis的mapper文件内容回顾