(二)Unity与Android交互之Android端实现功能

2021-08-20  本文已影响0人  像个战士一样去战斗

承接上一篇文章

(一)Unity导出Android工程:File ---> Build Settings,然后弹出以下弹框

Build Settings弹框

(二)点击Export,选择目标位置,稍等片刻...导出成功后,用Android Studio打开这个工程代码,

选Android Studio`s SDK 打开后,界面长这个样子

(三)为了代码结构更加清晰,我们新建一个Module,然后把这个Module变成Library,我们这里实现一个功能:点击Unity界面的Button,播放AdMob广告。所以这个Module就取名adlibrary。

新建adlibrary

(四)将新建的module变成Library

变成Library unityLibrary包含这个新建的Library

(五)在build.gradle(:adlibrary)中,删除applicationId,因为Library是不允许有applicationId的

(六)将dependencies里面报红的替换成AndroidX的

替换依赖

(七)话分两头,上篇文章中的C# Script文件(SDKManager),我们做了修改,如下

C# JavaScript

(八)重新回来,我们修改下Android工程的包名和类名,与Unity端保持一致

包名和类名,两端保持一致

(九)上面修改后,点击同步(Sync Project with Gradle Files),发现adLibrary消失了(在Android视图下),切换到Project视图后,发现其变成了一个普通的文件夹了,这个时候需要做以下修改,来让其重新变成Library。

修改build.gradle(:unityLibrary)文件 修改settings.gradle

(十)点击Button按钮,播放一个AdMob的激励广告视频,现在adlibrary的build.gradle里面添加依赖implementation'com.google.android.gms:play-services-ads:20.2.0'

添加广告依赖

(十一)删除mylibrary的清单文件中多余的东西,然后,添加 AdMob app Id

添加AdMob app ID

(十二)Unity在onStart()方法中,首先调用的是Android的MobileAds_Init()方法(名字自定义)

初始化AdMob广告

(十三)上面的方法中,需要获取Unity的上下文,通过反射来获取

获取Unity的上下文

(十四)加载激励视频广告的方法,如下

加载激励视频

(十五)Android将视频加载情况告知Unity端,通过以下这个方法

Android发送消息给Unity端

(十六)展示广告

在主线程展示广告

(十七)点击运行,报这个错

报错

解决方法,在gradle.properties里面加上这行代码

android.useAndroidX=true

(十八)点击运行,又报了个错

miniSdkVersion最小是21,但现在是19

全局搜索并修改下。

运行成功了,FQ后,加载视频会快些,毕竟是国外的广告。

上一篇下一篇

猜你喜欢

热点阅读