Danro-Jump/Assets/Scripts/Runtime/Gameplay/Equipment/JetpackFlameVfxSettings.cs
Danil Iarosh 77186697f8 Prepare v0.1 gameplay and hardware foundation
Подробные изменения:

- Расширен основной gameplay loop: джетпак, новые платформы, оборудование, враги, прогрессия сложности и ограничения взаимодействий игрока.

- Добавлены Bootstrap-сервисы запуска приложения, защита, фокус окна, управление курсором и настройки сервисов через DI.

- Добавлена COM-интеграция с технической схемой Input System, обработкой кнопок/ADC, подсветкой и консольной диагностикой.

- Добавлен отдельный debug/logging модуль с каналами, обработчиками консоли и файловым выводом.

- Добавлены asmdef, link.xml, EditMode/PlayMode тесты и обновлена дорожная карта проекта.

Проверки:

- dotnet build .\\DanroJump.Runtime.csproj --no-restore

- dotnet build .\\DanroJump.Tests.EditMode.csproj --no-restore

- dotnet build .\\DanroJump.Tests.PlayMode.csproj --no-restore
2026-06-08 14:22:48 +03:00

79 lines
1.8 KiB
C#

using UnityEngine;
using UnityEngine.VFX;
namespace DanroJump.Runtime.Gameplay.Equipment
{
[DisallowMultipleComponent]
public sealed class JetpackFlameVfxSettings : MonoBehaviour
{
private VisualEffect visualEffect;
private VFXRenderer vfxRenderer;
private void Awake()
{
CacheComponents();
}
public void Apply()
{
CacheComponents();
}
public void Play()
{
CacheComponents();
if (visualEffect == null)
{
return;
}
if (vfxRenderer != null)
{
vfxRenderer.enabled = true;
}
visualEffect.enabled = true;
visualEffect.Reinit();
visualEffect.Play();
}
public void Play(string sortingLayerName, int sortingOrder)
{
Play();
SetSorting(sortingLayerName, sortingOrder);
}
public void SetSorting(string sortingLayerName, int sortingOrder)
{
CacheComponents();
if (vfxRenderer == null)
{
return;
}
vfxRenderer.sortingLayerName = sortingLayerName;
vfxRenderer.sortingOrder = sortingOrder;
}
public void Stop()
{
if (visualEffect != null)
{
visualEffect.Stop();
visualEffect.enabled = false;
}
if (vfxRenderer != null)
{
vfxRenderer.enabled = false;
}
}
private void CacheComponents()
{
visualEffect ??= GetComponent<VisualEffect>();
vfxRenderer ??= GetComponent<VFXRenderer>();
}
}
}