Unity 集成指南
环境要求
- 支持 Unity 2019.4 及以上版本
准备
获取 SDK
Unity 2020.3.15 之前的版本为了避免后面构建报错建议升级 Gradle 版本,可参考该 Gradle 升级步骤文档。
Manifest 配置
打开项目的 AndroidManifest.xml 文件,添加如下配置:
(${applicationId} 为您的应用包名)
<activity-alias
android:name="${applicationId}.wxapi.WXPayEntryActivity"
android:exported="true"
android:targetActivity="com.taptap.payment.wechat.WechatPayActivity" />
集成 SDK 时,因 SDK 内部使用了第三方库,所以需同时添加 SDK 的外部依赖和添加 SDK 依赖
添加外部依赖
SDK 内部使用了部分第三方库,开发者接入时需先确保 SDK 外部依赖库已正常接入,具体设置如下:
- SDK 使用的 JSON 解析库为
Newtonsoft-json,如果当前工程已接入该依赖库,则不需额外处理,否则需在Packages/manifest.json添加如下依赖:
"com.unity.nuget.newtonsoft-json":"3.2.1"
- SDK 使用
com.google.external-dependency-manager管理 Android、iOS 依赖,如果当前工程已接入该依赖库,则不需额外处理,否则需在Packages/manifest.json添加如下依赖:
{
"dependencies": {
"com.google.external-dependency-manager": "1.2.179"
},
"scopedRegistries": [
{
"name": "package.openupm.com",
"url": "https://package.openupm.com",
"scopes": [
"com.google.external-dependency-manager"
]
}
]
}
添加 SDK 依赖
SDK 支持 Unity Package Manager 及本地文件导入两种集成方式,开发者根据需求选择其中一种即可,推荐使用远程依赖。
远程依赖
SDK 支持通过 NPMJS 及 GitHub 两种方式,开发者选择其中一种即可。
1. NPMJS 接入
在项目的 Packages/manifest.json 文件中添加以下依赖:
"dependencies":{
"com.unity.purchasing":"3.1.0", //TapTap IAP 所须依赖
"com.taptap.sdk.core":"4.9.5",
"com.taptap.sdk.iap":"4.9.5",
}
但需要注意的是,需在 Packages/manifest.json 中 dependencies 同级下声明 scopedRegistries:
"scopedRegistries":[
{
"name": "NPMJS",
"url": "https://registry.npmjs.org/",
"scopes": ["com.taptap"]
}
]
2. GitHub 接入
在项目的 Packages/manifest.json 文件中添加以下依赖:
"dependencies":{
"com.taptap.sdk.core":"https://github.com/taptap/tapsdk-unity-dist.git?path=/Core#4.9.5",
"com.taptap.sdk.iap":"https://github.com/taptap/tapsdk-unity-dist.git?path=/IAP#4.9.5",
}
说明:自 4.7.2 起,Unity Packages 仓库已统一为大仓
tapsdk-unity-dist,所有包通过目录区分并使用?path=指定子目录、#指定版本标签。例如 Core 模块:"com.taptap.sdk.core": "https://github.com/taptap/tapsdk-unity-dist.git?path=/Core#4.7.2"
在 Unity 顶部菜单中选择 Window > Package Manager 可查看已经安装在项目中的包。
本地文件导入
- 在 下载页 下载下列模块对应
unitypackage文件,并在 Unity 项目中依次通过 Assets > Import Packages > Custom Packages 进行导入,包括:
TapSDK_Core.unitypackageTapTapSDK 核心模块,必选。TapSDK_IAP.unitypackageTapTapSDK 模块IAP,必选。
- 如果当前项目已集成
Newtonsoft.Json依赖,则忽略该步骤,否则在NuGet.orgNewtonsoft.Json 页面中通过点击右侧 「Download package」 下载库文件,并将下载的文件后缀从.nupkg修改为.zip,同时解压该文件并复制内部的Newtonsoft.Json.dll文件拷贝到工程Assets的Plugins目录下,另外为了避免导出 IL2CPP 平台时删除必要数据,需在Assets目录下创建link.xml文件(如果已有该文件,则添加如下内容),其内容如下:
<linker>
<assembly fullname="System.Core">
<type fullname="System.Linq.Expressions.Interpreter.LightLambda" preserve="all" />
</assembly>
</linker>
处理安卓依赖失败
EDM4U 会自动监控 TapTap IAP 引入的 Android 依赖,但是在某些特殊情况下自动依赖解析可能失败,开发者可以通过 Assets > External Dependency Manager > Android Resolver > Force Resolve 来强制依赖解析。在测试之前请确认对于 com.taptap.android.payment:unity 的依赖被加到了 mainTemplate.gradle 文件中,如果 EDM4U 没有自动添加这个依赖,开发者也可以通过手动添加的方式处理依赖。
SDK 指南
我们在 Unity IAP 的框架下实现了一个新的商店实现,通过这种方式降低已经有 Google Play 或者 App Store 内购的 app 的接入成本。如果开发者是第一次接触到内购的流程,我们会在接下来简要说明 Unity 的内购流程,开发者也可以在 Unity 的