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已经完全导进来了 这会可以测试运行下 如果能顺利进入 代表配置成功

 

看到有人提问rlMain,这里做个补充,这个rlMain= RelativeLayout 也就是指的根布局, 需要把Unity的内容添加到根布局里面去

你可能感兴趣的:(Unity项目导入Android Studio 作为Android项目的一部分)