Danil Iarosh e70120f0b0 Improve COM stability, settings security, and add VFX layer
- Оптимизировано закрытие COM-системы: вызов ReadLine вынесен из-под блокировки во избежание зависания главного потока Unity Editor при выходе из игры или выгрузке сцены.
- Реализован контур безопасности: доступ к меню настроек теперь заблокирован за вводом PIN-кода "1234" с использованием существующего экранного модального ввода ServiceTextInputModalWindow.
- Создана и интегрирована централизованная служба визуальных эффектов IVfxService / GameVfxService. Программно генерируются и воспроизводятся эффекты частиц для автопрыжка, сбора монет и гибели персонажа.
2026-06-23 14:56:40 +03:00

41 lines
1.7 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using UnityEngine;
namespace DanroJump.Vfx
{
/// <summary>
/// Интерфейс централизованной службы визуальных эффектов (VFX).
/// </summary>
public interface IVfxService
{
/// <summary>
/// Создает визуальный эффект обычного автопрыжка игрока.
/// </summary>
/// <param name="position">Мировая позиция эффекта.</param>
void SpawnJumpEffect(Vector3 position);
/// <summary>
/// Создает визуальный эффект сбора монеты.
/// </summary>
/// <param name="position">Мировая позиция эффекта.</param>
void SpawnCoinCollectedEffect(Vector3 position);
/// <summary>
/// Создает визуальный эффект смерти игрока.
/// </summary>
/// <param name="position">Мировая позиция эффекта.</param>
void SpawnPlayerDeathEffect(Vector3 position);
/// <summary>
/// Создает праздничный визуальный эффект при выигрыше приза.
/// </summary>
/// <param name="position">Мировая позиция эффекта.</param>
void SpawnPrizeEffect(Vector3 position);
/// <summary>
/// Создает визуальный эффект ошибки связи с COM-устройством.
/// </summary>
/// <param name="position">Мировая позиция эффекта.</param>
void SpawnComErrorEffect(Vector3 position);
}
}