- Добавлен асинхронный процесс аппаратной выдачи физических призов (хоппер и витрина) в GameplayHudController. - Реализована блокировка выдачи по 10-секундному таймауту датчика хоппера с гарантированной отправкой команды отключения двигателя '300'. - Реализован автоматический таймаут неактивности на экране QR-кода с последующим переходом в главное меню. - Расширен сервис статистики PrizeSessionStateService новыми долгосрочными счетчиками (сыгранные игры, очки, монеты, сбои связи COM, физ. выдачи и ошибки). - Обновлен построитель сводки статистики в меню настроек для отображения новых счетчиков и списка последних 5 сессий. - Написаны EditMode тесты для проверки инкремента счетчиков и запуска выдачи призов.
63 lines
1.6 KiB
C#
63 lines
1.6 KiB
C#
using System;
|
|
using UnityEngine;
|
|
using Zenject;
|
|
|
|
namespace DanroJump.Audio
|
|
{
|
|
/// <summary>
|
|
/// Универсальный мост от prefab/Animation Event к централизованной аудиосистеме.
|
|
/// </summary>
|
|
[DisallowMultipleComponent]
|
|
[AddComponentMenu("Audio/Game Audio Emitter")]
|
|
public sealed class GameAudioEmitter : MonoBehaviour
|
|
{
|
|
[SerializeField] private bool playAtTransform = true;
|
|
|
|
private IGameAudioService audioService;
|
|
|
|
[Inject]
|
|
public void Construct([InjectOptional] IGameAudioService injectedAudioService = null)
|
|
{
|
|
audioService = injectedAudioService;
|
|
}
|
|
|
|
public void Play(GameAudioEvent eventId)
|
|
{
|
|
if (playAtTransform)
|
|
{
|
|
audioService?.Play(eventId, transform.position);
|
|
return;
|
|
}
|
|
|
|
audioService?.Play(eventId);
|
|
}
|
|
|
|
public void PlayGlobal(GameAudioEvent eventId)
|
|
{
|
|
audioService?.Play(eventId);
|
|
}
|
|
|
|
public void PlayByName(string eventName)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(eventName) ||
|
|
!Enum.TryParse(eventName, true, out GameAudioEvent eventId))
|
|
{
|
|
return;
|
|
}
|
|
|
|
Play(eventId);
|
|
}
|
|
|
|
public void PlayGlobalByName(string eventName)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(eventName) ||
|
|
!Enum.TryParse(eventName, true, out GameAudioEvent eventId))
|
|
{
|
|
return;
|
|
}
|
|
|
|
PlayGlobal(eventId);
|
|
}
|
|
}
|
|
}
|