(二)Unity与Android交互之Android端实现功能
承接上一篇文章
(一)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后,加载视频会快些,毕竟是国外的广告。