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的大括号里面
配置到android的大括号里面
(这里要注意 名字可能不一样项目也不同 记住指定)
⑥.配置混淆原则 把下面这个粘到你的proguard-rules.pro文件里面
1.首先说下Unity生成的AS项目的大概结构 如下所示看看有没有不全的
need-to-insert-img
如果文件不全 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"
然后 onCreate方法
this.rlMain = findViewById(R.id.activity_unity);
rlMain.addView(mUnityPlayer);
mUnityPlayer.requestFocus();
unity已经完全导进来了 这会可以测试运行下 如果能顺利进入 代表配置成功