[轉載]將Unity專案匯入Android Studio 作為Android專案的一部分
阿新 • • 發佈:2019-01-01
1.首先說下Unity生成的AS專案的大概結構 如下所示看看有沒有不全的
如果檔案不全 Unity重新生成專案
2.檔案齊全 以匯入Moudle的方式把Unity生成的專案當成一個單獨專案匯入Studio 正常執行就下一步 不能正常執行 重新打包
3.開始配置專案
①.把unity3d的src-main-libs裡面的unity-classes.jar拷入專案的libs目錄下 然後 add as library
②.把unity3d的src-main-assets和jniLibs資料夾直接拷入到專案的src-main下,和java同一級別
③.把unity3d的src-main-res的資原始檔直接拷入專案的資源裡,這裡注意不要覆蓋檔案,出現衝突就開啟檔案把程式碼粘進去
④.在專案的包名路徑下建立一個包名叫unity的package,把unity3d的src-main-java-包名最裡面的三個java檔案粘進去,注意修改包名
⑤.配置gradle
配置到android-defaultConfig的大括號裡面
ndk { abiFilters "armeabi", "armeabi-v7a", "x86", "mips" }配置到android的大括號裡面
packagingOptions { exclude "jniLibs/armeabi-v7a/libmain.so" exclude "jniLibs/armeabi-v7a/libmono.so" exclude "jniLibs/armeabi-v7a/libunity.so"(這裡要注意 名字可能不一樣專案也不同 記住指定)exclude "jniLibs/x86/libmain.so" exclude "jniLibs/x86/libmono.so" exclude "jniLibs/x86/libunity.so" }
⑥.配置混淆原則 把下面這個粘到你的proguard-rules.pro檔案裡面
#Unuty3D -dontwarn bitter.jnibridge.** -keep class bitter.jnibridge.** { *; } -dontwarn com.unity3d.player.** -keep class com.unity3d.player.** { *;⑦.在unity的路徑下新建一個empty activity繼承UnityPlayerActivity,這裡不推薦使用Kotlin,可能會出現問題,一般命名為UnityActivity ,註冊在AndoidManifest.xml裡面 然後開啟unity3d的src-main-AndroidManifest.xml 把裡面的} -dontwarn com.fmod.** -keep class com.fmod.** { *; } -keep class 你的包名.unity.** { *; }
android:screenOrientation
android:launchMode
android:configChanges
屬性複製到主專案的UnityActivity裡
⑧.給UnityActivity對應的activity_unity.xml加個id
android:id="@+id/activity_unity"然後
this.rlMain = findViewById(R.id.activity_unity); rlMain.addView(mUnityPlayer); mUnityPlayer.requestFocus();
unity已經完全導進來了 這會可以測試執行下 如果能順利進入 代表配置成功