1. 程式人生 > >[轉載]將Unity專案匯入Android Studio 作為Android專案的一部分

[轉載]將Unity專案匯入Android Studio 作為Android專案的一部分

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.** { *; 
} -dontwarn com.fmod.** -keep class com.fmod.** { *; } -keep class 你的包名.unity.** { *; }
⑦.在unity的路徑下新建一個empty activity繼承UnityPlayerActivity,這裡不推薦使用Kotlin,可能會出現問題,一般命名為UnityActivity ,註冊在AndoidManifest.xml裡面 然後開啟unity3d的src-main-AndroidManifest.xml 把裡面的

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已經完全導進來了 這會可以測試執行下 如果能順利進入 代表配置成功