Unity Game SDKv0.5.1Скачать SDK
RUEN

Практические рецепты

Короткие решения для типовых задач, которые можно перенести в собственную архитектуру.

Последний маркер на Canvas

void OnHit(VorivoxHit hit)
{
    marker.anchoredPosition = hit.ToCanvasLocal(playfield);
    marker.gameObject.SetActive(true);
}

Защита от повторного shot_id

readonly HashSet<string> processed = new();
void OnHit(VorivoxHit hit)
{
    if (!processed.Add(hit.ShotId)) return;
    ResolveShot(hit);
}

Очищайте набор при старте нового сеанса и ограничивайте его размер числом выстрелов сценария.

Отсчёт без блокировки

async Task BeginAsync(VorivoxSessionStart start)
{
    await countdown.ShowAsync(start.CountdownMs);
    round.EnableInput();
}

Потеря фокуса

Не завершайте игру самостоятельно. Launcher может отправить session.pause с причиной focus_lost. Заморозьте таймеры и покажите нейтральный системный слой.

Подсветка по результату

await sdk.TriggerLedAsync(points > 0 ? "HIT" : "MISS");

Перед использованием расширенных режимов проверяйте sdk.Capabilities.LedOverride.

Фатальная ошибка

try { await LoadLevelAsync(); }
catch (Exception ex)
{
    await sdk.LogAsync("error", ex.Message);
    ShowOperatorFriendlyError();
}