跳转到内容

Unity SDK

本文介绍如何使用 Framedash Unity SDK 自动收集性能遥测数据。

  • Unity 2022.3 及以上
  • .NET Standard 2.1 / .NET Framework 4.x
  1. 打开 Window > Package Manager
  2. 选择「+」>「Add package from git URL…」
  3. 输入以下 URL:
https://github.com/crane-valley/framedash-unity-sdk.git

如需锁定到特定版本,请在 URL 后追加版本标签:

https://github.com/crane-valley/framedash-unity-sdk.git#v0.1.0

在启动时初始化一次 SDK,例如在持久化 GameObject 上的 MonoBehaviour 中初始化:

using System.Collections.Generic;
using Framedash;
using UnityEngine;
public sealed class GameBootstrap : MonoBehaviour
{
// 在 Inspector 中设置 API 密钥,或从 ScriptableObject 或平台密钥存储中加载。
// 环境变量在移动端、主机和 WebGL 上不可用,因此不要使用
// Environment.GetEnvironmentVariable。
[SerializeField] private string _apiKey;
private void Awake()
{
TelemetrySDK.Initialize(
apiKey: _apiKey,
buildId: Application.version);
}
}

endpointUrl 为可选项,省略时默认使用 https://ingest.framedash.dev/v1/events;如需指向本地或自托管的 ingest,请显式传入。

SDK 会自动收集以下数据:

  • FPS — 帧率
  • Frame Time — 每帧处理时间
  • Memory — 托管堆 + 原生内存使用量
TelemetrySDK.Instance.Track(
eventName: "player_death",
mapId: "map_01",
position: transform.position);

如需附加分类属性或数值指标,可传入可选的字典:

TelemetrySDK.Instance.Track(
eventName: "player_death",
mapId: "map_01",
position: transform.position,
attributes: new Dictionary<string, string> { { "cause", "fall_damage" } },
metrics: new Dictionary<string, float> { { "health", 0f } });

默认情况下事件以匿名方式发送。玩家登录后调用 SetPlayerId,即可将后续事件与该玩家关联:

TelemetrySDK.Instance.SetPlayerId(playerId);