跳到主要内容
版本:v7

Unity

Unity 引擎 SDK 支持移动端的 Android 和 iOS 平台和 PC 平台

环境要求

  • Unity 2019.4 或更高版本
  • Android 5.0, API 21 或更高版本
  • iOS 国内最低 11.0,海外最低 13.0

项目配置

添加 SDK 依赖

在 Packages/manifest.json 中按需添加下述内容,建议和平台同事确认具体内容以免添加多余模块:

{
"dependencies": {
"com.xd.sdk.foundation": "7.2.0",
"com.xd.sdk.common": "7.2.0",
"com.xd.sdk.account": "7.2.0",
"com.xd.sdk.tap": "4.9.0-xd.1",
// 上面是必选模块,以下为可选模块
// XDSDK 统一封装 TapSDK 模块
// 包含 TapSDK 成就、云存档
"com.xd.sdk.tap.plus": "4.9.0-xd.1",
// XDSDK 支付模块
"com.xd.sdk.payment": "7.2.0",
// XDSDK 海外模块,包含海外第三方业务 SDK
"com.xd.sdk.oversea": "7.2.0",
// XDSDK 国内模块,包含国内第三方业务 SDK
"com.xd.sdk.mainland": "7.2.0",
// XDSDK 分享模块,包含国内外不同的分享逻辑,需要搭配国内或海外模块使用
"com.xd.sdk.share": "7.2.0",
// XDSDK 广告分包模块,包含今日头条广告SDK、分包SDK、腾讯广点通广告SDK、分包SDK
"com.xd.sdk.ads.subpkg": "3.7.1",
// XDSDK 抖音 CPS
"com.xd.sdk.douyincps": "1.0.1",
// XDSDK 公告模块
"com.xd.sdk.announcement": "7.2.0",
// XDSDK 举报模块
"com.xd.sdk.report": "7.2.0",
// XDSDK 推送模块
"com.xd.sdk.push": "7.2.0",
"com.unity.nuget.newtonsoft-json": "3.2.1",
"com.unity.textmeshpro": "3.0.6",
},
"scopedRegistries": [
{
// NPMJS 访问不通时可以切换到淘宝源试试 https://registry.npmmirror.com
// 公司内网可使用 http://npm.xindong.com
"name": "NPMJS",
"url": "https://registry.npmjs.org/",
"scopes": [
"com.xd",
"com.tapsdk",
"com.leancloud"
]
}
]
}

XDSDK 版本信息参见:RELEASE NOTE,TapSDK 版本号参考:TapSDK ChangeLog

相关配置文件

  • 将前文中的 XDConfig.json 文件 移到 Assets 目录下。

  • 【可选】 需要使用 Firebase 埋点时

    • iOS:将 GoogleService-Info.plist 放在 /Assets/Plugins/iOS 中。
    • Android:将 google-services.json 放在 /Assets/Plugins/Android。

    以上两个文件是游戏从 Firebase 后台下载的。

iOS 配置 App 所需能力

如果您的 App 需要使用苹果登录、内购、推送等功能,请参考 配置文档 进行配置。

Android 配置网页支付

XDSDK 海外支付业务因业务形态需要增加特殊配置,请按照以下步骤进行配置:

为启用 Chrome 自定义选项卡所需的配置添加 URL Scheme 属性,同时将 SchemeCCTActivity 添加到 AndroidManifest.xml 文件中:

提示

URL Scheme 组成规则:xd + xd_client_id,其中 xd_client_id 为全小写。

举例 : 你的 XD Client ID 为:hn5RcJei2JxCYlS0,在 AndroidManifest.xml 文件中添加的格式为

<data
android:host="xdcctwebpay"
android:scheme="xdhn5rcjei2jxcyls0"/>
<activity
android:name="com.xd.intl.payment.ui.SchemeCCTActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>

<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>

<data
android:host="xdcctwebpay"
android:scheme="xd{your_xd_client_id}"/>
</intent-filter>
</activity>

Android Facebook 相关配置

接入 Facebook SDK 时,无论是需要 Facebook 登录或者分享的功能,需要对应用进行一些额外的配置,详情可参见 Facebook 快速接入文档。以下是配置示例,请按照游戏实际参数值进行文本替换:

<!-- Facebook 分享需要的配置 -->
<provider
android:name="com.facebook.FacebookContentProvider"
android:authorities="com.facebook.app.FacebookContentProvider{your_application_id}"
android:exported="true" />

<!-- Facebook 在无端授权时需要做的配置(Facebook 已废弃内嵌 WebView 可授权模式,采用的是 Chrome Custom Tabs 服务,需要添加这个配置来做支持)-->
<activity
android:name="com.facebook.CustomTabActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />

<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />

<data android:scheme="fb{your_application_id}" />
</intent-filter>

</activity>

特别需要注意的是:Facebook 的 Application ID 一般给到的是纯数字的 ID,在 Unity 或者 UE 上打包出来的 Android apk 在部分机型上 Facebook SDK 在初始化时读取内容会是纯数字,这时会报错。 对此情况可在 AndroidManifest.xml 文件配置中添加的 meta-data 标签中的 android:value 属性配置的值最前面添加"\"符号,或直接使用 Android 的 string.xml 资源文件形式进行资源 ID 引用。

<meta-data 
android:name="com.facebook.sdk.ApplicationId"
android:value="\1234567890987" />

// or

<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_application_id" />

PC Steam 登录 & 支付

如果项目涉及到 Steam 登录或支付功能,需要下载 Steam SDK 并安装。 当发布 Steam 包时,在 Unity Editor 的 Build Settings -> Player Settings -> Scripting Define Symbols 中添加 XD_STEAM_SUPPORT 宏。