没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
参考链接:https://medium.com/@davidbeloosesky/embedded-unity-within-android-app-7061f4f473a
软件环境:
1. Unity5.4.5f1
2. Android Studio 2.3.3
整体步骤:
1. 导出Unity程为Android程
2. Android Studio导Unity导出的Android程, 并导出为AAR件
3. 在原程导AAR件并打包测试
详细步骤:
1.Unity准备个测试程, 测试程中最好添加个脚本, 监听安卓返回键, 可以退出当前Unity场景.
具体代码为:
Public class SupportBackScript : MonoBehaviour
{
void Update()
{
If(Application.platform == RuntimePlatform.Android)
{
if(Input.GetKey(KeyCode.Escape))
{
Application.Quit();
}
}
}
}
然后准备导出Unity程, 打开Player Build Settings界, 呼出径为, 左上File>BuildSettings, 记得把测试场景添加上.
平台选择Android, 勾选上Google Android Project 选项如图:
点击Player Settings, 可以按照如图稍微设置下., Bundle Identifer能默认的, 随写个就,设置完毕后, 就可以点击Export导出.
2.前Unity版本只能导出为Eclipse程, 所以需要Android Studio导然后动转化下, 第次导的时间较.
导完毕后 :
打开Mainfest, 先在activity中增加配置: android:process=":unity", 这个属性的意思是把UnityActivity当成个新的进程处.
由于UnityActivity退出的时候会杀掉当前进程, 所以把UnityActivity放在新进程就算被杀掉也会影响原App的进程.
然后注释掉以下代码:
如图, 打开build.gradle件, 第注掉改成第的样, 然后把defaultConfig注释掉 applicationId这样.
接着就可以点击Build>Make Project, 完毕后, 如图就能看到outputs下打包好的件.
3.打开个原Android应的程, 点击File > New Module >Import JAR/AAR Package, 选择你之前Build好的AAR件.
确保settings.gradle件内是 : include ':app', ':your_aar_file_name'
如图, 打开build.gradle(Module:app), 添加红框内的内容: compile project(":your_aar_file_name"), 然后会提示Sync gradle, 点击同步即可
由于aar件内含有unity的mainfest件, 当run程的时候会尝试合并mainfest, 但是默认会出现Manifest merger failed with multiple error, see logs错误,
需要在原Android App中的Mainfest中稍微设置下.
添加mainfest tag: xmlns:tools="http://schemas.android.com/tools"
添加application tag : tools:replace="android:icon,android:theme"
效果就是如下:
最后就剩下添加打开UnityActivity的法, 打开Activity的代码如下 :
备注 :
如果出现以下为题 :
1.出现这个错误, ⾼版本Unity导出⼯程的时候会有Gradle选项, 这个相当于是Android studio⼯程的⽬录结构. 但是Unity默认的
Gradle是2.1.0版本的, 如果出现以下错误, 则只需要把版本改成2.2.0即可, 路径是build.gradle (app module):
Error:org.gradle.api.internal.tasks.DefaultTaskInputs$TaskInputUnionFileCollection cannot be cast to
org.gradle.api.internal.file.collections.DefaultConfigurableFileCollection
Possible causes for this unexpected error include:<ul><li>Gradle’s dependency cache may be corrupt (this sometimes occurs
after a network connection timeout.)
2. 如果任何⼈在将Unity活动导⼊主项⽬时遇到问题,可能是因为在构建期间类⽂件不会导出到AAR⽂件。
可以在Unity导出的Android的程中的proguard-rules.txt件中加 : -keep public class my.package.** { public *;}即可
洪蛋蛋
- 粉丝: 21
- 资源: 335
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- pta题库答案c语言之排序4统计工龄.zip
- pta题库答案c语言之树结构7堆中的路径.zip
- pta题库答案c语言之树结构3TreeTraversalsAgain.zip
- pta题库答案c语言之树结构2ListLeaves.zip
- pta题库答案c语言之树结构1树的同构.zip
- 基于C++实现民航飞行与地图简易管理系统可执行程序+说明+详细注释.zip
- pta题库答案c语言之复杂度1最大子列和问题.zip
- 三维装箱问题(Three-Dimensional Bin Packing Problem,3D-BPP)是一个经典的组合优化问题
- 以下是一些关于Linux线程同步的基本概念和方法.txt
- 以下是一个简化的示例,它使用pygame库来模拟烟花动画的框架.txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0