目錄結構
Unity工程指UnityLibrary目錄下檔案;
安卓工程指app目錄下檔案;
整體指App目錄下不包括app和UnityLibrary;
1.Unity打包時勾選匯出安卓工程;
複製gradle.properties中:unityStreamingAssets=xxx 到整體工程的gradle.properties中
複製local.properites中ndk、jdk路徑到整體工程的local.properites
2.AndroidStudio建立Empty Activity工程;
整體工程的setting.gradle中新增:
include ':unityLibrary'
project(':unityLibrary').projectDir=new File('.\\unityLibrary')
安卓工程app目錄下build.gradle中新增:
dependencies{
implementation project(':unityLibrary')
implementation fileTree(dir:project(':unityLibrary').getProjectDir().toString() + ('\\libs'), include: ['*.jar'])
}
3.修改安卓工程和Unity工程Build.Gradle
targetsdk,minsdk,compilesdk,buildToolsVersion都要一致
也可在File/ProjectStructure/Modules中切換Version
4.在安卓工程MainActivity中新增切換Activity程式碼
在OnCreate中新增:
Intent intent = new Intent(MainActivity.this, UnityPlayerActivity.class);
startActivity(intent);
這樣一開始就會開啟Unity介面,也可以在原生工程新增按鈕跳轉;
報錯記錄
1.Gradle Version和 Gradle Plugin Version出錯
Gradle Plugin Version中包含了多個Gradle Version;根據提示選擇對應版本的GradleVersion;如果沒有對應版本,就下載新的Gradle Plugin Version;
File/ProjectStructure/Project中切換;
2.sdk、ndk、jdk版本出錯
建議使用Unity本體目錄下的sdk和jdk,同樣ProjectStructure介面選擇;
之前local.properites也配置過;
3.跳轉Unity工程閃退
安卓工程的main/res/values/string.xml中新增
<string name="game_view_content_description">Game view</string>
4.編譯過程中找不到libillcpp.so,libmain.so等問題
重新複製Unity匯出工程的jiniLibs資料夾到UnityLibrary對應目錄工,刪除buid,重新打包;
5.打包編譯il2cpp報錯
如果做了程式碼熱更有可能是沒有正確生成依賴,找不到對應型別;
我使用HybridCLR熱更,可以重新生成依賴,再次匯出安卓工程;
6.兩個app圖示
註釋UnityLibray目錄中AndroidManifest.xml以下配置;
<!-- <intent-filter>-->
<!-- <action android:name="android.intent.action.MAIN" />-->
<!-- <category android:name="android.intent.category.LAUNCHER" />-->
<!-- </intent-filter>-->