1、从u3d中导出android工程  工程名为 HS5

2、as(AndroidStudio简写)中新建android工程 MyAndroid

3、HS5 以module方式导入到MyAndroid unity3D内嵌android项目-LMLPHP

4、unity3D内嵌android项目-LMLPHP将u3d工程作为库引入

5、注释掉HS5 AndroidManifest中的

<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" />
和 <!--<intent-filter>-->
  <!--<action android:name="android.intent.action.MAIN" />-->
<!--<category android:name="android.intent.category.LAUNCHER" />-->
<!--<category android:name="android.intent.category.LEANBACK_LAUNCHER" />-->
<!--</intent-filter>--> 6、修改HS5中build.gradle 做如下修改
unity3D内嵌android项目-LMLPHP

7、android原生工程中创建UnityActivity  继承自 UnityPlayerActivity   做如下修改

unity3D内嵌android项目-LMLPHP

8、修改android原生工程的AndroidManifest文件

unity3D内嵌android项目-LMLPHP

9、实现原生android调用u3d

unity3D内嵌android项目-LMLPHP

 10 实现u3d 调用android
AndroidJavaClass jc = new AndroidJavaClass("com.example.wwy.myapplication.UnityActivity");
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("m_activity");
jo.Call("SwitchActivity");
另一种 把两个工程合并为一个的方式 也可以实现 比较繁琐 不做介绍

参考资料

https://blog.csdn.net/zouxin_88/article/details/79149384

https://blog.csdn.net/f1017641044/article/details/80827621

04-25 17:01