SDK(2)导出 AAR 修改配置 安卓接口

Android中每个界面都是一个activity;

Unity打包出来的只有一个Mainactivity;

Android   提供一个SDK    给    Unity;Unity中的plugins  将其它的的程序整合到这   然后Unity打包出来的MainActivity使用

 

创建一个库    Android  Library

在第一个com.........testLibrary下,右键  new  一个空的Activity

Res下的  layout  文件删掉    SetContenView()方法,留着也没用

在testLibrary库下,放入Class.jar=======》Add as Library

Class.jar  在   Editor=====》data=====》playbackEngines=====》AndroidPlayer====》variaations====》mono=====》release=====》class.jar。

 

把app下的<application>  代码部分  </application>      把代码部分复制到自己建的项目中

然后把爆红的删掉

删android:them="@style/appTheme">时,后面的    >     留下

Android:label  =  "应用名字" 。

<meta-data  android:name="unityplayer.UnityActivity" android:value=”true“/>     用来标记unity用的

 

MainActivity  extends UnityPlayerActivity;    会自动导入  com.unity3d.player.unityPlayerActivity。

improt Android support v7.app.appcompathActivity   删掉

 

在JAVA   的  MainActivity 中写一个加法的方法

public int add( int a,int b)  {   return a+b;}

在安卓视图中选中自己建的项目  make module testlibrary   

 

Intermediates======>bundles=======>debug=========>libs和res复制到zhuo桌面

intermediates======>manifests=======>full=======>debug=======>androidManifest  复制到桌面

在AndroidManifest中修改一下包名      包名全部小写  

 

新建untiy工程,  设置成 Android  平台      包名设置成一样的   

新建文件夹    Plugins=======》Android  把桌面上的文件夹导进来

 AndroidJavaClass   jc  = new   AndroidJavaClass ( "  com.unity3D.player.unityPlayer" );

获得   com.unity3D.player  下的  unityPlayer  类 

AndroidJavaObject  jo = jc.getstatic <AndroidJavaObject >( ” currentActivity“);

获得类下的对象,拿到了As中的MainActivity;     jo =  MainActivity

jo.call<int>("add",1,2);   方法名,参数数组

 

新建工程     module   App一般不用,做参考

new  一个一个module  

1,导入Unity的Class,放入libs下;

2,如果需要导入资源,在src下新建一个assets;

 

make module build

只复制一个外面的class到unity中

在unity中,调用到这个方法,括号后面可以加参数,调用方法的参数

适用于让安卓做一些事情用不到任何安卓的资源,纯代码就可以实现。

java中,静态方法,

在unity中调用

 

安卓中的打印:

log.e(tag:"UnityAndroidTest",msg:"errorTest");

ctrl+B  到达类的定义处

 

C#调用SDK中的的打印消息

 

在Unity中

unity打包安卓的时候即使是空工程也会把安卓SDK完整的包含进去

 

显示浮动kuan框

新建项目,创建一个library   创建空的activity

拷贝<application></application>中的内容

在</intent-filter>后面添加

<meta-data  android:name="unitypalyer.unityActivity" android:value="true"/>

在MainActitity中

public class MainActivity extends UnityPlayerActivity

{    }

删掉    import  android.support.v7.app.AppCompatActivity;

 

然后build一下,

把Manifest拷贝到unity的Plugins下的Android中,unity发包包名保持一致

把AAR拷贝到桌面 

 

更改AAR中的设置

libs下的class删掉,

外面的class移进去,最后记得把   外面的多余的Class   删掉

 

AAR中编辑manifest

删掉,不删打出包来会出现俩图标

然后放回去,

 

unity  中  调到安卓平台     修改包名   包名中没有大写

 

新建一个Unity工程,然后选用安卓开发平台,改变包名

 

unity中的接口:继承自AndroidJavaProxy;

模拟一个构造方法:     base中    类名$接口名

再下面是接口的方法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值