赞
踩
Unity中已嵌入Android的SDK,Unity可以很方便的和Android实现相互调用,对于第三方的SDK,只提供了与安卓交互,因此需要通过AndroidStudio与Unity进行交互;
使用AndroidStudio创建Android Library库工程,导出到Unity中作为插件使用;库文件中可以有自己的逻辑和调用;
需要使用到AndroidJavaClass类和AndroidJavaObject类
AndroidJavaObject类的一常用方法:
方法 | 描述 |
Call | 调用Android代码中的非静态方法 |
CallStatic | 调用Android代码中的静态方法 |
Get | 获取Android代码中的非静态字段 |
GetStatic | 获得Android代码中的静态字段 |
Set | 设置Android代码中的非静态字段 |
SetStatic | 设置Android代码中的静态字段 |
使用UnityPlayer.SendMessage方法,参数描述如下:
注意:XML文件里会包含一些包名设置,图标等等,会和Unity中的PlayerSetting里面的设置冲突,当有xml存在时,会使用xml中的设置;
①:创建一个空的AndroidStudio工程
②:添加Android Libary
步骤:切换到Project视图 ⇒ 右键 ⇒ New ⇒ Module ⇒ Android Libary ⇒ 命名
③:导入Unity中Android支持的.jar包(classes.jar)
文件地址:Unity安装目录\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes\classes.jar
④:导入UnityPlayerActivity.java文件到java/com.unity3d.player文件夹下
⑤:添加MainActivity,继承自UnityPlayerActivity
⑥:右键将classes.jar文件设置为Libary
步骤:右键点击classes.jar文件 ⇒ Add as Libary
⑦:切换到Android视图下将默认的AndroidMainfest.xml的Applaction内容复制到刚才创建的项目中的AndroidMainfest.xml中替换掉,报红就删掉
⑧:导出aar包
步骤:选中该项目 ⇒ 点击导航栏Bulid ⇒ Make Module
⑨:找到Debug目录下的Build\outputs\aar.aar的压缩文件,将该文件使用压缩文件打开,删掉Libs下面的classes.jar文件删掉,将aar里面的xml文件,删掉一些通用设置,比如显示图标和App名称
⑩:拷贝出项目文件\buid\intermediates\merged_manifests\debug\processDebugMainfest\Merged\AndroidMainfest.xml
一,将导出的aar包和拷贝出的AndroidMainfest复制到Unity工程的Assets\Plugins\Android文件夹下
二,获取AndroidStudio中激活的Activity
- private static AndroidJavaClass unityPlayer;
- private AndroidJavaObject curActivity;
- private void Awake()
- {
- unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
- curActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。