学习链接:
Unity与Android Studio✨之间那些不清不楚的小秘密✨(Android Studio与unity交互)-腾讯云开发者社区-腾讯云
一. 准备知识 Unity和Android交互指什么?
Unity和Android之间的交互主要指在发布安卓项目时,我们可以
1.在Unity相关代码中调用Android相关内容
2.在Android相关代码中调用Unity相关内容
要达到这样的目的,我们需要建立Android项目将Android项目以jar包或aar包的形式导入Unity后进行交互,再一起打包
jar和aar包是什么? 他们都是归档文件
jar包:jar包 包含Android项目中的脚本文件和清单文件,不包含资源文件 jar包导入其他工程后,其他工程可以方便引用源码
aar包:aar包是AndroidStudio下打包Android工程中的src(脚本文件)、res(资源文件)、lib(库文件)后生成的打包文件,aar包导入其他工程后,其他工程可以方便引用源码和资源文件
注意:用Android Studio打包时一般以aar包形式
用Eclipse打包时一般以jar包形式
简单记忆:
jar和aar有点类似C#中的dll文件,只是规则和结构不同我们可以将这些包放到其他工程中使用
1.创建Unity和Android Studio项目
1.创建Unity项目后,切换到Android平台,设置包名和Android版本
2.创建Android Studio
选择 Phone and Tablet,创建一个Empty Activity项目
注意:
1.包名和Minimum SDK版本要和Unity项目一致 若没有相同SDK版本,请再AndroidStudio中下载
2.创建完成后,等待加载结束后,删除工程中两个Test项目以及res下的无用资源
2.配置build.gradle文件
1.在Android Studio中Project页签中切换为Project
2.展开工程名下app页签,打开build.gradle文件
重要修改:
1.id 'com.android.application' 修改为 id 'com.android.library'
2.删除defaultConfig中的 applicationId 项
3.点击右上角同步按钮 Sync Now

3.导入 classes.jar 包
路径:Unity安装目录\Data\PlaybackEngines\AndroidPlayer\Variations\mono(il2cpp)\Release\Classes中
1.将包拷贝到AndroidStudio中的app\libs下
2.导入后 选择包 右键点击 Add As Library
4.导入 UnityPlayerActivity 脚本
路径:Unity安装目录/Data/PlaybackEngines/AndroidPlayer/Source/....
将路径下的文件夹拷贝到AndroidStudio中的 app/src/main/java中
5.修改MainActivity脚本
我们需要修改Android Studio中的MainActivity脚本
1.改为继承UnityPlayerActivity
2.注释onCreate函数中的setContentView代码
3.添加两个自定义函数之后用于测试
6.修改AndroidManifest.xml配置文件
1.删除application中的无用内容
2.在activity中加入一句 <meta-data android:name="unityplayer.UnityActivity" android:value="true"/>

7.生成Untiy用的aar包
选中MainActivity脚本
选择 工具栏——>Build——>Make Moudle .....
如果打包aar包时 出现了 下载相关内容的 字样 那么就需要多等待一会儿,下载完成过后 一般就能够构建成功
二.Unity调用Android
1.导入AndroidStudio生成的内容
在Unity中新建 Plugins/Android 插件文件夹
将AndroidStudio生成的内容 放入该文件夹中
1.导入aar包
2.导入AndroidManifest.xml配置文件
2.在Unity中书写交互代码

3.打包注意事项
基础设置:
1.打包密钥设置
2.非中文路径
aar包设置(根据打包报错提示来处理,一般由以下几步需要处理):
1.删除aar包中 libs下的classes.jar,因为Unity会自带,避免重复报错
2.删除aar包中 classes.jar 中的 UnityPlayerActivity.class,因为Unity会自带,避免重复报错
3.删除aar包中 classes.jar 中的 BuildConfig.class,通过Unity打包不需要构建配置
三.Android调用Unity
1.Android调用Unity规则
想要被Android端调用的Unity函数
1.需要写在继承MonoBehaviour的脚本中
2.需要挂载在场景中处于激活状态的GameObject上
交互时,在Android端调用API:
UnityPlayer.UnitySendMessage("对象名", "函数名", "参数信息")
注意:该API中的参数只能是String类型或者为null
2.测试交互
1.在Unity端创建测试脚本,编写测试函数
2.在场景上创建一个空物体,将脚本挂载上去
3.在Android端书写测试代码
4.重新打包aar包,导入Unity中进行打包测试
4483

被折叠的 条评论
为什么被折叠?



