• Android导出aar插件供Unity使用以及通过android scheme启动unityApp


    unity是5.5,android studio是2.3.3
    一:在android Studio导出aar插件到unity
          说明一下aar与jar插件的区别:jar是只包含配置文件和class文件,而aar插件是包括资源的,两者都能用压缩软件打开。
          首先打开as建立新的工程(一直下一步下一步就行了)
    打开之后如果你的也有我这种错误报错(没有的可以省略这一步,不知道是不是我的as有问题,家里的没毛病,公司的就这毛病QAQ)
    然后打开你的Gradle文件(有两个,别打开错了)
    原来是这样的
    然后修改下成下面这样,在点击右上角的try again
    ok ,开始我们的插件制作
     1:首先在你的unity安装目录下面找到calsses.jar包
          (Unity5.5\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes)
             然后将这个包拷贝到AS的libs文件夹下面(可以ctrl+c/v)
    2:点击这个jar包右键点击Add as library,然后稍等片刻
    3:接着我们重新修改一下gradle
         把: apply  plugin 'com.android.application' 修改成 apply  plugin 'com.android.library'
      删除applicationId "com.lj.test10"这一行
     (熟悉的android开发者应该知道这个是把当前的项目变成了library项目,不熟悉的就跟着我弄啦)
       最后的效果
    
    4:开始编写程序(我在这编写的是一个简单的打电话程序)
        (1)打开mainActivity.class,让他继承UnityplayerActivity 具体如下
    然后配置你的AndroidManifast.xml,添加打电话的权限
    <uses-permission android:name="android.permission.CALL_PHONE"/>
    
    5:然后build,然后之后找到你build之后的aar插件
     

      ,点击show in explorer,然后找到outputs文件夹下面的aar文件夹下面的aar插件
    6:导入到unity中
    然后在你的unity安装路径下面(Unity5.5\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Apk)找到你的Androidmanifest.xm文件也导入都按untiy中
    修改一下:
    ps:这里我之前出现好几个问题,如果不导入这个最后打包会出现两个图标,或者说直接就不会实现打电话这个功能(最后弄到的这个方案)
    7:开始编写c#代码
    我的场景是这样,然后给button添加事件
    8:OK开始打包(别忘了包名设置)
    (1)打包途中出现了这样的错误
    莫急,这个是因为你开始做插件的时候导入了classec.jar,然后unity打包的时候又会添加一次,所以我们要做的就是把aar插件中的classes.jar删除
    用压缩软件打开你的aar插件,然后找到libs文件夹,删除里面的classes.jar
    (2)回到unity继续build
    然后又提莫的出现问题了(我开始也是一脸蒙蔽)
    这个问题嘛....还是用压缩软件打开你的aar插件,然后删除res这个文件夹
    好了,再build应该就没问题了

     
    9:最后打开使用。
    二:利用scheme 启动unity app
     定义:android中的scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面;通过scheme协议,服务器可以定制化告诉App跳转那个页面,可以通过通知栏消息定制化跳转页面,可以通过H5页面跳转页面等。
    1:首先我新建立了一个android工程,页面代码如下
       
    弄完之后build到你的手机上面。
    2:在你的刚才制作的aar插件的AndroidManifest.xml配置文件中添加如下代码
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.BROWSABLE" />
        <category android:name="android.intent.category.DEFAULT" />
        <data
            android:host="test.app"
            android:scheme="myscheme" />
    intent-filter>
    ps:data里面的scheme字符以及host都可以自己随便定义
    然后修改你的mainActivity.class文件
    然后再把这个aar插件导出,删除libs里面的classes.jar包和res文件夹(好吧,有点繁琐,有大神知道更简单的可以指导下),添加到Unity中
    ps:这里会问,为什么要回到as工程里面配置清单,不可以在unity的AndroidManifest.xml直接配置吗?答案是可以的,但是最后这样导致了两个情况
              (1):是我在插件中写了一个Toast打招呼,单独点开app是可以打招呼的,然后利用scheme跳转打开居然这个打招呼就没了
              (2):是我在利用scheme打开的时候如果我想在untiy中获得这个scheme协议是获取不到的(这种情况大多用在scheme中含有参数的时我们             需要获取)
    3:导入到Unity中 ,编写C#代码
    4:build 到手机,效果如下
    延伸一点:如果知道怎么做之后我们就可以实现android app打开unity build 的app,也可以untiy app打开android 的app....
    有什么问题可以问我,或者我有什么问题请指导下,三克油!!!
    附上demo地址: http://download.csdn.net/download/k20132014/10044614 网盘:https://pan.baidu.com/s/1skD7xxV
  • 相关阅读:
    双指针--反转字符串,数组拆分,两数之和,移除元素,最大连续1的个数,长度最小子数组
    【开发经验】客户端互踢实现思路
    FPGA基础:Verilog HDL
    基于Python实现的五子棋游戏设计(alpha-beta剪枝技术)
    【无标题】
    Qt 线程(四) Qt 异步 QFutureWatcher 监视异步 返回结果
    信号采样基本概念 —— 7.数模转换(DAC & ADC)
    Maven官方镜像仓库与阿里云云效Maven
    基于javaweb+mysql的+JPA学生宿舍学生住宿申请管理系统(管理员、学生)
    零信任网络:一种全新的网络安全架构
  • 原文地址:https://blog.csdn.net/K20132014/article/details/78391638