Unity 应用接入¶
通过收集 Unity 应用的指标数据,以可视化方式分析应用性能。
阅读路径¶
- 首次接入:先看 快速开始
- 完整接入:继续阅读本文
- 参数详解:查看 SDK 初始化、RUM 配置、Log 配置、Trace 配置
- 自定义能力:查看 自定义标签使用、RUM 手动埋点、数据采集脱敏
- 高级场景:查看 原生与 Unity 混合开发
- 问题排查:查看 故障排查
前置条件¶
注意
若已开通 RUM Headless 服务,前置条件已自动配置,可直接接入应用。
- 安装 DataKit
- 配置 RUM 采集器
- DataKit 配置为公网可访问,并且安装 IP 地理信息库
应用接入¶
- 进入 用户访问监测 > 新建应用 > Android/iOS
- 分别为 Unity Android 和 Unity iOS 创建两个应用,以便分别接收来自 Android 和 iOS 平台的 RUM 数据
- 为每个平台的应用输入对应的应用名称和应用 ID
-
选择应用接入方式:
- 公网 DataWay:直接接收 RUM 数据,无需安装 DataKit 采集器
- 本地环境部署:满足前置条件后接收 RUM 数据
安装¶
源码地址:https://github.com/GuanceCloud/datakit-unity
Demo 地址:https://github.com/GuanceCloud/datakit-unity/blob/dev/Assets/Scenes
- 下载最新 ft-sdk-unity.unitypackage
- 通过
Assets->Import Package->Custom Package...导入ft-sdk-unity.unitypackage - 添加 json 解析第三方库
"com.unity.nuget.newtonsoft-json",可以在Package Manager->Add Package by name ...中完成 - 将
FTSDK.prefab拖拽至第一个场景页面,并在FTSDK.cs中_InitSDK方法内初始化 SDK - 将
FTViewObserver.prefab拖拽至其他场景页面,用于监听页面View生命周期,以及应用休眠和唤醒 - 通过
Application.logMessageReceived监听并转换 Unity 崩溃数据和普通日志数据,示例请参考 快速开始 与 RUM 手动埋点
Assets/Plugins
├── Android
│ ├── FTUnityBridge.java // Android bridge
│ ├── InnerClassProxy.java // Android Inner Setting Proxy
│ ├── ft-sdk-release.aar // Android SDK
│ ├── gson-2.8.5.jar // Android SDK 依赖第三方库
├── iOS
│ ├── FTMobileSDK.xcframework // iOS SDK
│ ├── FTUnityBridge.mm // iOS bridge
├── FTSDK.cs // FTSDK.prefab 绑定脚本
├── FTSDK.prefab // SDK 初始化预制件
├── FTUnityBridge.cs // Unity bridge 桥接 iOS Android 等平台方法
├── FTViewObserver.cs // FTViewObserver.prefab 绑定脚本
├── FTViewObserver.prefab // View 页面监听预制件
├── UnityMainThreadDispatcher.cs // UnityMainThreadDispatcher.prefab 绑定脚本
├── UnityMainThreadDispatcher.prefab // 主线程消费队列预制件
- 如果原生 Android 和 iOS 工程已集成原生 SDK,需要注释
_InitSDK方法,避免重复设置;具体场景请参考 原生与 Unity 混合开发 - iOS Plugin Inspector 设置:
FTMobileSDK.xcframework是动态库,需要勾选Add to Embedded Binaries。选中此选项后,Unity 将设置 Xcode 项目选项,从而将插件文件复制到最终应用程序包。
如果已经集成原生 SDK,Android 的
gson-2.8.5.jar、ft-sdk-release.aar以及 iOS 的FTMobileSDK.framework可以从 Unity 项目中移除。
Android 的 OkHttp 请求和启动耗时功能需要配合ft-plugin使用,详细配置请见 Android SDK。
初始化说明¶
最小初始化示例请阅读 快速开始。
完整 SDKConfig 参数说明请阅读 SDK 初始化。
详细配置入口¶
高级场景¶
常见问题¶
添加局变量避免冲突字段¶
为了避免自定义字段与 SDK 数据冲突,建议标签命名添加 项目缩写 的前缀,例如 custom_tag_name。项目中使用 key 值可查询源码。SDK 全局变量中出现与 RUM、Log 相同变量时,RUM、Log 会覆盖 SDK 中的全局变量。
