【Unity】AndroidStudio打jar包/aar包给Unity使用(一)

1.创建Android工程 (Android 4.4 PackageName:Unity_Android_SDK)
2.创建Android Library, Unity_Android_Library
3.在Android Library下创建新的Activity(勾选Launcher Activity)
删除activity_main.xml
4.MainActivity.java中删除 setContentView(R.layout.activity_main);

5.从Unity安装目录:…\Unity2018.1.0f2\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes
拿到classes.jar包
复制到Android工程下的libs目录下;
6.将app包下的manifest的application标签中的内容覆盖掉Unity_Android_Library的application的标签中内容
删除报红的错误
这里写图片描述
android:label=”” 修改为应用程序名称
在标签结尾后添加新的标签
这里写图片描述
7.MainActivity 修改继承为 UnityPlayerActivity;

8.MainActivity下实现方法

9.选中Unity_Android_Library ,点击Bulid/Make select Modules
//我的AndroidStudio已经不支持此方法导出
10.Unity_Android_Library\build\intermediates\bundles\debug\ 目录下将classes.jar替换libs下原来的classes.jar包;
拿出libs,res文件夹
将manifests\full\debug\AndroidManifest.xml文件拿出;
11.将AndroidManifest.xml下的package=”com.dtstudio.tony” 修改为Unity工程包名(都为小写)

12.创建Unity工程(名称随意)
修改平台
设置包名(遇上面一直)
13.创建文件夹Plugins\Android\
将上面的三个文件放在该目录下(博主AS无法导出jar,就放张aar的图)
这里写图片描述
14.C#调用Java上的方法
//获得com.unity3d.player包下的UnityPlayer类
AndroidJavaClass jc = new AndroidJavaClass(“com.unity3d.player.UnityPlayer”);
//获得jc所代表的类下的currentActivity对象
AndroidJavaObject jo = jc.GetStatic(“currentActivity”);
//jo.Call(“方法名”,参数1,参数2)
//无返回值
//jo.Call<返回值类型>(“方法名”,参数1,参数2)
//有返回值
int num = jo.Call(“add”, 1, 2);
java调用C#
//挂在脚本的物体,要调用的方法名,参数
UnityPlayer.UnitySendMessage(“Main Camera”,”ChangeColor”,”“);
这里写图片描述这里写图片描述这里写图片描述

TonyChen
2018.5.18

猜你喜欢

转载自blog.csdn.net/u013284706/article/details/80360559