跳到內容

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);