unity 与 android 交互

学习链接:

Unity与Android Studio✨之间那些不清不楚的小秘密✨(Android Studio与unity交互)-腾讯云开发者社区-腾讯云

【Unity3D】Unity 中使用 C# 调用 Java ② ( C# 调用 Java 的相关方法介绍 | 调用 Java 方法 | 获取 Java 字段 | 设置 Java 字段 )-腾讯云开发者社区-腾讯云

一. 准备知识 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中进行打包测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值