- Добавлен асинхронный процесс аппаратной выдачи физических призов (хоппер и витрина) в GameplayHudController. - Реализована блокировка выдачи по 10-секундному таймауту датчика хоппера с гарантированной отправкой команды отключения двигателя '300'. - Реализован автоматический таймаут неактивности на экране QR-кода с последующим переходом в главное меню. - Расширен сервис статистики PrizeSessionStateService новыми долгосрочными счетчиками (сыгранные игры, очки, монеты, сбои связи COM, физ. выдачи и ошибки). - Обновлен построитель сводки статистики в меню настроек для отображения новых счетчиков и списка последних 5 сессий. - Написаны EditMode тесты для проверки инкремента счетчиков и запуска выдачи призов.
32 lines
896 B
C#
32 lines
896 B
C#
using System;
|
|
using UnityEngine;
|
|
using UnityEngine.Audio;
|
|
|
|
namespace DanroJump.Audio
|
|
{
|
|
/// <summary>
|
|
/// Описывает музыкальный трек для конкретного состояния игры.
|
|
/// </summary>
|
|
[Serializable]
|
|
public sealed class GameMusicTrack
|
|
{
|
|
[SerializeField] private GameMusicCue cue;
|
|
[SerializeField] private AudioClip clip;
|
|
[SerializeField] private AudioMixerGroup outputGroupOverride;
|
|
[SerializeField] [Range(0f, 1f)] private float volume = 1f;
|
|
[SerializeField] private bool loop = true;
|
|
|
|
public GameMusicCue Cue => cue;
|
|
|
|
public AudioClip Clip => clip;
|
|
|
|
public AudioMixerGroup OutputGroupOverride => outputGroupOverride;
|
|
|
|
public float Volume => Mathf.Clamp01(volume);
|
|
|
|
public bool Loop => loop;
|
|
|
|
public bool HasClip => clip != null;
|
|
}
|
|
}
|