
对局
协调回合制对局并确认结果。
SDK 与 REST
与 Unity、Godot 或 Unreal 集成,或使用 REST 接口。
项目控制台
在项目中配置各项功能并管理当前数据。
快速集成
quickstart.dashboard.videos.matches
视频即将上线
quickstart.videoSummaries.matches
using UnityEngine;
using PM.horizOn.Cloud.Manager;
public sealed class MatchesDemo : MonoBehaviour
{
// Initialize/connect and restore the existing player in the Quickstart first.
// Invoke explicitly. The SDK also enforces the returned polling cadence.
public async void ReadMyMatches()
{
var user = UserManager.Instance.CurrentUser;
if (user == null || !user.IsValid()) return;
var result = await MatchesManager.Instance.GetMatches(user.UserId);
if (!result.IsSuccess) { Debug.LogWarning(result.ErrorCode); return; }
Debug.Log($"Ledger revision: {result.Data.revision}");
foreach (var match in result.Data.recent)
Debug.Log($"Match {match.id}: {match.status}");
// Recent may include an active match after this player's forfeit.
// Respect result.Data.pollAfterSeconds; no background poll or automatic timeout.
}
}
// Full two-player recipe: SDK Examples/MatchesExample and MatchesSampleStore.
// ReadLedger/ReadMatch -> SaveCreateAfterLedgerReview/SaveActionAfterMatchReview.
// ApplySavedIntent sends one durable original body/revision. Unknown create is reconciled.
// Never replace a pending original with the revision from a later read.
// ReportResult uses the original finalStateRevision/result bytes/sorted winnerIds.
// Ordinary consensus is not trusted victory proof. Ranked runs use Validated Actions.此 SDK 示例使用 develop。请检查已安装的 SDK 是否具备所需 API。 参见快速入门
