u3d android xml,在android原生项目中嵌入unity项目的方法(AndroidStudio3)

七月 30.2018.

0 Comment

在原生android项目中嵌入unity是一个十分普遍的需求,特别是当要在android App中加入一些原生android不易实现的功能,如加载比较复杂的3d模型,显示复杂的动画,开启摄像头实现AR功能(实现AR本身不难,难的是处理各种复杂的模型与动画,原生代码借助三方库也挺繁琐)等。

在AndroidStudio中集成步骤如下:(基于Unity2018测试)

1. 从unity中导出基于gradle编译的Android Studio(以下简称AS)工程。

5b7836a40176ece1f6ecb76c2560b372.png

2. 进入导出的gradle工程目录,编辑文件build.gradle:

(1) apply plugin: ‘com.android.application’改为:

apply plugin: ‘com.android.library’

(2) 去除applicationId ‘com.x.y’,其中’com.x.y’是你项目的package id。

3. 再进入gradle工程的src/main目录,修改AndroidManifest.xml:

将:

这段删除掉。

至此,Unity导出工程这边的修改完成。进入AS这边。

4. 在AS中新建一个测试工程(下称:主工程),然后通过File|New|Import Module…导入前面制作好的AS module。

5. 在主工程中打开AndroidManifest.xml文件,作如下修改:

(1) 在Manifest根节点添加一个属性:

xmlns:tools = "http://schemas.android.com/tools"

(2) 在Application节点添加一个属性:

tools:replace="android:icon, android:theme"

6. 选中主工程,点击右键,单击”Open Module Settings”,进入Module设置界面,依照下面设置:

1b082a800c0707600fda321a395dd55f.png

先切换到Dependencies页签,点击右边的+号,在弹出的下拉菜单中选择最后一个3 Module Dependency,然后选中我们前面导入的步骤1-3中做好的unity导出的module,这样让主工程依赖导入的module。

7. 新建一个从com.unity3d.player.UnityPlayerActivity继承的的Activity类,如:

import com.unity3d.player.UnityPlayerActivity;

public class MyARActivity extends UnityPlayerActivity {

}

8. 在主工程的AndroidManifest.xml中添加一个Activity节点,如下:

android:process=":neobearAR"

>

9. 在activty_main.xml中加入一个Button,设定Button的id为arBtn:

2dccfa6bf2e34cc7cd830747948095c3.png

10. 在MainActivity.java中加入事件响应的过程:

Button arButton = (Button)findViewById(R.id.arBtn);

arButton.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

startActivity(new Intent(getApplicationContext(), MyARActivity.class));

}

});

11. 编译。若碰到编译错误,可以将Test工程都删除掉,然后在build.gradle中修改这些配置,使整个工程中统一:

compileSdkVersion 28

buildToolsVersion '27.0.2'

minSdkVersion16

targetSdkVersion 28

12. 运行。若原unity工程中集成了其他一些sdk,如做AR应用可能会集成EasyAR,这时,需要在原unity工程中将license key对应的package id改成主工程的id,然后替换一下license key,之后重新导出AS工程,注意,更新到主工程时,可以只更新assets目录下的内容。

13. 以下是我测试的运行图:

d44c782e5749f97e5bb7329badbb496f.png

b2ddaf90af0afd141296c9cb98d0fc64.png

Enjoy!

打赏

14dde901d2028a4432a65cc6d05aa356.png微信扫一扫,打赏作者吧~

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值