- Добавлен асинхронный процесс аппаратной выдачи физических призов (хоппер и витрина) в GameplayHudController. - Реализована блокировка выдачи по 10-секундному таймауту датчика хоппера с гарантированной отправкой команды отключения двигателя '300'. - Реализован автоматический таймаут неактивности на экране QR-кода с последующим переходом в главное меню. - Расширен сервис статистики PrizeSessionStateService новыми долгосрочными счетчиками (сыгранные игры, очки, монеты, сбои связи COM, физ. выдачи и ошибки). - Обновлен построитель сводки статистики в меню настроек для отображения новых счетчиков и списка последних 5 сессий. - Написаны EditMode тесты для проверки инкремента счетчиков и запуска выдачи призов.
35 lines
1.2 KiB
C#
35 lines
1.2 KiB
C#
using System.IO;
|
|
using NUnit.Framework;
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
|
|
namespace DanroJump.Tests.EditMode
|
|
{
|
|
public sealed class MissingScriptSweepTests
|
|
{
|
|
[Test]
|
|
public void PrefabsAndScenes_DoNotContainExplicitMissingScriptReferences()
|
|
{
|
|
var guids = AssetDatabase.FindAssets("t:Prefab");
|
|
foreach (var guid in guids)
|
|
{
|
|
var path = AssetDatabase.GUIDToAssetPath(guid);
|
|
var prefab = AssetDatabase.LoadAssetAtPath<GameObject>(path);
|
|
Assert.That(prefab, Is.Not.Null, $"{path} could not be loaded as prefab.");
|
|
Assert.That(
|
|
GameObjectUtility.GetMonoBehavioursWithMissingScriptCount(prefab),
|
|
Is.EqualTo(0),
|
|
$"{path} contains missing MonoBehaviour references.");
|
|
}
|
|
|
|
foreach (var scenePath in Directory.GetFiles("Assets", "*.unity", SearchOption.AllDirectories))
|
|
{
|
|
Assert.That(
|
|
File.ReadAllText(scenePath),
|
|
Does.Not.Contain("m_Script: {fileID: 0}"),
|
|
$"{scenePath} contains explicit missing script references.");
|
|
}
|
|
}
|
|
}
|
|
}
|