? ? ????近期接到了一個(gè)新的需求是接入臺(tái)灣版的SDK。從SDK提供商那邊拿到的分別是Android端和iOS端的兩個(gè)包,沒有直接提供支持Unity接入的unityPackage,那就只能分開接入了。本文描述的是接入Android端的過(guò)程,以及血淚史。。
? ? ? ? Android端拿到的是一個(gè)aar包,里面是一些API供Android原生調(diào)用,要放入U(xiǎn)nity供Unity調(diào)用的話,是需要接入U(xiǎn)nityPlayerActivity,我的思路就是創(chuàng)建一個(gè)Android Library引用SDK包,并編寫供Unity調(diào)用的函數(shù),然后導(dǎo)出aar包。將這個(gè)aar包及SDK的aar包放入U(xiǎn)nity使用。
? ? ? ? 那么就先開始創(chuàng)建一個(gè)項(xiàng)目吧。





? ? ? ? 要編寫供調(diào)用的函數(shù)首先要找到Unity提供的 classes.jar 這個(gè)包,文件的位置在你的Unity安裝項(xiàng)目目錄:Unity -> Editor -> Data -> PlaybackEngines -> AndroidPlayer -> Variations -> il2cpp -> Release -> Classes。如果找不到Unity安裝目錄可以右擊桌面的Unity圖標(biāo),選擇“打開文件所在的位置”,就能夠到達(dá)Data文件夾,然后逐級(jí)往下找就能找到啦。

? ? ? ? 接下來(lái)要做的就是將classes.jar文件導(dǎo)入Android Studio的libs文件夾中,點(diǎn)擊app,然后雙擊libs文件夾就能找到libs的位置了,然后復(fù)制jar包,粘貼進(jìn)去。


? ? ? ?導(dǎo)入后,需要在app級(jí)的build.gradle中加入引用(如下),這樣就可以使用這個(gè)jar包了~
implementation files('libs/classes.jar')

? ? ? ? 點(diǎn)擊右上角的Sync Project with Gradle Files按鈕,或者提示條上的Sync Now可以檢查build.gradle文件有沒有出錯(cuò)。

? ? ? ? 這個(gè)時(shí)候,重復(fù)上述導(dǎo)入jar包的步驟就可以導(dǎo)入SDK的aar包了,同樣放在libs文件夾中,并在build.gradle里面配置引用,并且配置aar包需要的其他配置。aar包的引用配置跟jar包一樣:
implementation files('libs/包名.aar')

? ? ? ? 這時(shí)候可以在MainActicity.java文件中寫Unity交互代碼了!本文就不贅述代碼的編寫了,將在另一篇文章中寫Unity和Android交互。
? ? ? ? 寫完Java代碼后,就要開始導(dǎo)出aar包了,在導(dǎo)出aar包前還有一些事情要做,就是修改build.gradle配置。我們?cè)谛陆ㄒ粋€(gè)Android Studio項(xiàng)目時(shí),默認(rèn)設(shè)置為application,這時(shí)候build的話會(huì)獲得一個(gè)apk包,所以要修改。
applyplugin:'com.android.library'

? ? ? ? 這時(shí)將復(fù)制一份AndroidManifest文件供導(dǎo)入U(xiǎn)nity使用,然后修改項(xiàng)目中的AndroidManifest文件:

? ? ? ? 然后修改activity_main.xml文件

????????點(diǎn)擊Build -> Build Bundle(s)/APK(s) -> Build APK(s) 打包

????????這時(shí)候會(huì)獲得一個(gè)app-debug.aar的包,位置如圖

? ? ? ? ?在導(dǎo)入U(xiǎn)nity之前,需要?jiǎng)h除這個(gè)aar包中的classes.jar以及引用的sdk包,不然在Unity打包的時(shí)候會(huì)發(fā)生沖突。如圖,找到aar所在位置,右擊打開aar,找到libs文件夾,刪除里面的文件。




? ? ? ? 然后將這個(gè)文件拖入U(xiǎn)nity項(xiàng)目,并且把sdk包拖入U(xiǎn)nity項(xiàng)目中,同時(shí)還有AndroidManifest文件以及Unity中需要配置的gradle文件。其中,AndroidManifest文件可以直接從自己的項(xiàng)目中拷貝出來(lái),gradle文件需要復(fù)制Unity提供的模板文件,然后進(jìn)行修改。找到Unity項(xiàng)目Unity -> Editor -> Data -> PlaybackEngines -> AndroidPlayer -> Tools -> GradleTemplates,復(fù)制 mainTemplate.gradle 文件到Unity項(xiàng)目中。


? ? ? ? 打開 mainTemplate.gradle 文件,找到dependencies,將之前在Android Studio項(xiàng)目中所寫的SDK所需配置復(fù)制到里面,就完成Unity的build配置了。

? ? ? ? 打開導(dǎo)入U(xiǎn)nity的AndroidManifest文件,做一些修改

????????接下來(lái)就可以在Unity中編寫代碼了,寫完就可以打包了。
? ? ? ? 在Unity中使用Gradle打包將寫于下一篇文章。