基本的には UnityをAndroidアプリの中に埋め込む 通りにやればできると思います。少し時間が経って新しくなっているので、箇所箇所でエラーが出たので、その内容を書いています。
前提
名称 | バージョン |
---|---|
Mac OS | 10.15.5 |
Unity | 2019.3.0f6 |
Android Studio | 4.0 |
補足一覧
エラーでは無いですが
初めてやると実行ボタンの ▶︎ が非活性でどうしようと思うかもしれないが、Android Stuido で起動すると、すぐGradleビルドが実行されて、裏側でモジュールのダウンロードとなどいろいろやってくれています。それが完了すれば押せるようになるので、待つべし。よく見るとAndroid Studioの下の方で実行中のメッセージが出ているはずです。
GradleプロジェクトをAndroidライブラリ用に書き換える で出るエラー
普通にやっていると、
GradleプロジェクトをAndroidライブラリ用に書き換える
のところで、以下エラーが発生するかと思います。
Could not find method bundle() for arguments [build_5tr13prejz4zjojiaprk1aauk$_run_closure2$_closure9@45060b8e] on extension 'android' of type com.android.build.gradle.LibraryExtension.
bundle.gradle から
bundle {
language {
enableSplit = false
}
density {
enableSplit = false
}
abi {
enableSplit = true
}
}
を消し去ることで解消できます。
アプリからUnityを呼び出すの kotlin 版
MainActivity から呼び出すならこんな感じのコードになります。
val intent = Intent(this, UnityPlayerActivity::class.java)
startActivity(intent)
アプリからUnityを呼び出す で出るエラー
普通にやっていると、
アプリからUnityを呼び出す
のところで、以下エラーが発生するかと思います。
(ビルドは通るけど、実行するとクラッシュするので、Logcat をみて見てください。)
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.myapplication3-tMH0XN0tKN_2SDmrPpPLmA==/base.apk"],nativeLibraryDirectories=[/data/app/com.example.myapplication3-tMH0XN0tKN_2SDmrPpPLmA==/lib/arm64, /system/lib64, /system/product/lib64, /hw_product/lib64, /system/product/lib64]]] couldn't find "libmain.so"
これは、build.gradle に以下を追加することで解消することができます。
defaultConfig {
ndk {
abiFilters 'armeabi-v7a', 'x86'
}
}