Unity Android 依赖库方式对接文档

来源:互联网 发布:mac通讯录管理软件 编辑:程序博客网 时间:2024/05/15 23:55

Unity Android 依赖库方式对接文档

    版本V1.0.3        编写日期:2017/11/21     作者:雷小星    邮箱:991030600@qq.com

  • Unity Android 依赖库方式对接文档
    • 一 准备工作
      • 复制文件夹
      • 改名
      • 打开项目
    • 二 项目结构整理
      • 导入Unity项目
      • 修改依赖关系
    • 三 基础接入操作
      • 文件更新
      • 模板代码复制
      • 修改微信配置以及启动图
      • 修改AndroidManifestxml文件
    • 四 功能拓展
      • 契约类说明
      • 分享进入房间
      • 高德定位
      • 电量获取
    • 五 常见问题
      • 微信登录调不起来
      • AAPT2
    • 六 其他

一、 准备工作

复制文件夹

把文件夹GameProject模板到项目存放目录,路径不可包含中文

改名

把文件夹GameProject模板修改名称为自定义名称,不能使用中文

例:前面步骤完成后的截图

打开项目

使用AndroidStudio打开更名后的项目,等待Gradle配置完成
完成后的界面大致如下:
这里写图片描述

二、 项目结构整理

导入Unity项目

将Unity导出的Android工程导入项目,使用Import Moudle
这里写图片描述
这里写图片描述
导入后等待Gradle配置完成

期间可能会出现如下弹窗
这里写图片描述
这个由于模板工程基于AS2.3.3开发的,而我们现在使用的是AS3.0版本,不指导怎么选就直接点击最右边的按钮
完成界面如下
这里写图片描述

修改依赖关系

这里写图片描述
打开Project Structure, 依次点击蓝色选项,到Dependencies
这里写图片描述

点击圈红的绿色+号 ,然后选择Module dependency
这里写图片描述
将gameLibrary作为Unity导出工程的依赖库,点击OK,等待Gradle配置完成

三、 基础接入操作

文件更新

这里写图片描述
将Unity导出工程中的unity-classes.jar文件复制替换到gameLibrary中的对应位置
然后删掉Unity导出工程中的unity-classes.jar(一定要删掉,不然会出现重复依赖的问题)
这步操作是为了预防unity-classes.jar版本不一致导致程序异常

模板代码复制

这里写图片描述

复制template下的文件到 Unity导出工程下

修改微信配置以及启动图

修改四个配置为自己项目的配置信息
这里写图片描述
启动图默为0,不执行覆盖UnityPlayer操作

修改AndroidManifest.xml文件

这里写图片描述
修改为 .MainActivity

注册微信回调页面

<activity    android:name=".wxapi.WXPayEntryActivity"    android:exported="true"    android:launchMode="singleTop"    android:theme="@android:style/Theme.Translucent.NoTitleBar" /><activity    android:name=".wxapi.WXEntryActivity"    android:exported="true"    android:launchMode="singleTop"    android:theme="@android:style/Theme.Translucent.NoTitleBar" />

复制以上代码到application节点内

四、 功能拓展

契约类说明

路径: com.antiphon.gamelibrary.AntiphonGameContract
可以查看gameLibrary的支持的功能以及回调方法,可根据自己的需求进行调整
交互契约方法都定义在此类中

分享进入房间

<intent-filter>    <data        android:host="自定义Host"        android:scheme="antiphon" />    <action android:name="android.intent.action.VIEW" />    <category android:name="android.intent.category.DEFAULT" />    <category android:name="android.intent.category.BROWSABLE" /></intent-filter>

复制上面代码到如下位置
这里写图片描述

该方法接收Android启动时携带信息

/** * 启动信息回调 * * @param str */void onGetLaunchParmars(String str);

高德定位

<meta-data    android:name="com.amap.api.v2.apikey"    android:value="高德平台申请的key" /><service android:name="com.amap.api.location.APSService" />

复制以上代码到AndroidManifest.xml文件的application节点内,修改value为自己申请到的key

/** * 获取经纬 */void getLngAndLat();/** * 获取经纬结果回调 * * @param lng_lat 经纬度 使用逗号分隔,如: 116,40  */void onGetLngAndLat(String lng_lat);/** * 地址位置信息回调 * * @param location 地址 */void onGetLocation(String location);

电量获取

/** * 获取电量 * * @param enable 是否开启电量广播 */void getBattery(boolean enable);/** * 回调电量信息 * * @param battery 电量信息 */void onGetBattery(String battery);

五、 常见问题

微信登录调不起来

出现这样的情况有如下可能,请逐一排查
1. 打包时使用的签名文件和申请微信应用时使用的不一致
2. 手机安装过非正确签名包,这种需要清除微信缓存数据
3. 微信开发平台填写的签名格式错误,正确格式应为没有冒号的小写字符串
4. 忘记注册微信回调页

AAPT2

在项目gradle.properties文件中添加
android.enableAapt2=false
关闭aapt2的编译,即可

六、 其他

1.Unity有新版本时,替换以下两个文件夹即可
这里写图片描述

如unity-classes.jar版本有变更时还需替换gameLibrary中的unity-classes.jar

2.gameLibrary不包含资源文件,可导出jar文件,jar方式对接请自行操作