unity3D开发:手把手带你接入百度地图sdk

unity3D开发:手把手带你接入百度地图sdk

接入unity sdk如果只需要在unity里进行,那问题还不大,要是得调用Java代码,那就不得不在AndroidStudio里进行操作了。比如百度地图的sdk,只提供了Android/IOS/Web/HarmonyOS的sdk,没有unity直接能用的,那我们只得将unity工程导出为Android Gradle,然后在AndroidStudio里编写Java代码,再打成apk包发布。接下来进行unity百度地图sdk的接入。

一、打开Android Studio,创建一个空工程。

我们需要创建一个release版本。选择 build 菜单,创建一个app bundle。如下图所示。在key store 那里可以创建一个Keystore文件用于签名。记住你的密码,后面会用到。
在这里插入图片描述

二、获得百度sdk

首先登录https://lbsyun.baidu.com/,注册成为百度开发者,然后创建一个地图sdk应用。如图在这里插入图片描述
按提示设置sha1值,其中发布版的keystore文件是你自己创建keystore时设置的文件,不是cmd里进去默认的那个,在你自己keystore目录下打开命令行窗口。口令密码也是你自己设置的keystore密码。复制realesed的sha1值。在这里插入图片描述
应用包名要和unity工程的bundle Identifier一致,这里使用如下举例在这里插入图片描述

然后就是下载sdk(这里选择jar包),选择最基础的功能就行。在这里插入图片描述

三、将百度地图sdk导入进unity工程中*,拖一个简单的UI界面,编写代码。

在这里插入图片描述
其中地图按钮的脚本如下图所示。其余部分代码(比如退出按钮)不是重点,这部分操作应该都会吧:
在这里插入图片描述

在unity里调用我们将在AndroidStudio里编写的Unity2AndroidFunc()方法。然后把下载下来的百度地图sdk打开,复制我们要用到的jar和so文件。在这里插入图片描述
在unity里的Assets目录下新建Plugins/Android/libs,将复制的文件粘贴过来。
在这里插入图片描述
然后设置导出为Android模式,导出为Android Gradle。
在这里插入图片描述
*注:如果是纯Android开发,可以直接在AndroidStudio里添加sdk文件,但我们这里是用unity3D开发,就先把百度地图sdk添加进unity工程里,这样导出为Gradle工程时会将百度地图sdk一起导出来。用AndroidStudio打开工程后,so文件会被自动加入到jniLibs里,不需要我们再次进行sdk的导入了。

四、用AndroidStudio打开从unity导出的Gradle文件。如下图所示:

在这里插入图片描述
默认包名就是 com.unity3d.player,与我们的百度地图应用包名一致。接下来要改动4个文件。

(1)选中 UnityPlayerActivity,加入如下代码:

protected void Unity2AndroidFunc(final String param1, final String param2){
    runOnUiThread(() -> ShowBaiduMap(param1, param2));
}

public void ShowBaiduMap(final String param1, final String param2){
    // 显示地图
    startActivity(new Intent(UnityPlayerActivity.this, MapActivity.class));
}

(2)创建一个Activity,名字就叫MapActivity(注意是Java文件,不是Kotlin),这个就是点击地图后显示的Activity。

在这里插入图片描述
代码如下:


package com.unity3d.player;

import android.app.Activity;
import android.os.Bundle;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.MapStatus;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.TextOptions;
import com.baidu.mapapi.model.LatLng;

public class MapActivity extends Activity {
    private MapView mMapView = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //step1:必不可少
        SDKInitializer.setAgreePrivacy(getApplicationContext(),true);
        //step2:在使用SDK各组件之前初始化context信息,传入ApplicationContext
        //注意该方法要再setContentView方法之前实现
        SDKInitializer.initialize(getApplicationContext());
        setContentView(R.layout.activity_map);
        //获取地图控件引用
        mMapView = findViewById(R.id.bmapView);
        var baidumap = mMapView.getMap();

        //定义文字所显示的坐标点
        var llText = new LatLng(30.490302,104.068432);
        var textOption = new TextOptions()
                .bgColor(0xAAFFFF00)
                .fontSize(35)
                .fontColor(0xFFFF00FF)
                .text("成都华阳客运站")
                .rotate(0)
                .position(llText);
        baidumap.addOverlay(textOption);
        var mapStatus = new MapStatus.Builder().target(llText).zoom(18).build();
        var manStatusUpdate = MapStatusUpdateFactory.newMapStatus(mapStatus);
        baidumap.setMapStatus(manStatusUpdate);
    }

    @Override
    protected void onResume() {
        super.onResume();
        //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
        mMapView.onResume();
    }
    @Override
    protected void onPause() {
        super.onPause();
        //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
        mMapView.onPause();
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
        mMapView.onDestroy();
     }
    }

(3)创建一个布局文件activity_map.xml:

在这里插入图片描述
代码如下:
在这里插入图片描述

(4)最后,修改AndroidManifest.xml文件。在这里插入图片描述

加入MapActivity:在这里插入图片描述
以及权限相关(可从百度地图开发指南里复制):
在这里插入图片描述
在这里插入图片描述
至此已经全部完成了。直接运行。

在这里插入图片描述
在这里插入图片描述
完美!

  • 19
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
基于TMS320F28335的应用开发是一种数字信号处理(DSP)的实践过程,它将帮助开发者学会如何使用TMS320F28335这一DSP芯片进行系统设计和开发。以下将手把手为你介绍学习DSP的步骤。 首先,需要了解TMS320F28335芯片的基本特性和功能。该芯片具有高速运算、丰富的接口和内存资源,支持多种外设和通信协议。详细查阅相关资料,包括用户手册和开发工具的文档,了解它的架构、寄存器功能和编程模型。 接下来,配置开发环境。下载并安装适合TMS320F28335的集成开发环境(IDE),例如Code Composer Studio。通过IDE连接开发板与计算机,并确保通信正确。 然后,学习DSP的基本概念和算法。了解数字信号处理的基础理论知识,例如采样定理、滤波器设计和离散傅里叶变换等。深入研究常用的DSP算法,如卷积、快速傅里叶变换(FFT)和滤波器等。 开始编程和应用开发使用C语言或汇编语言编写程序,实现各种DSP算法和功能。利用DSP芯片的强大计算能力,开发音频处理、图像识别、机器学习等应用。同时,进行调试和性能优化,确保程序的正确性和高效性。 与此同时,学习硬件接口和外设的使用。芯片的外设包括模数转换器(ADC)、数模转换器(DAC)、通信接口等。掌握数据输入输出的方法,了解使用外设与其他设备进行数据传输的原理和步骤。 最后,进行系统集成和测试。将开发好的DSP应用与其他硬件或外设进行连接,构建完整的系统。进行功能验证和性能测试,调整和改进系统以满足设计要求。 通过以上步骤,你将逐步学习并掌握基于TMS320F28335的应用开发。不断实践和探索,掌握更多高级的DSP算法和技术,将帮助你在数字信号处理领域取得更大的成就。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值