chip-game/Assets/Scripts/Global VFX/SamuraiEffect.cs
2026-01-12 09:36:17 +03:00

70 lines
1.8 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering.PostProcessing;
public class SamuraiEffect : MonoBehaviour, IEffect
{
[SerializeField] float forwardSpeed = 50;
[SerializeField] float backSpeed = 2;
[SerializeField] float maxBloomIntensity = 20;
[SerializeField] float maxVignetteIntensity = 0.2f;
[SerializeField] AudioClip electroSFX;
[SerializeField] Texture sparkTexture;
[SerializeField] PostProcessVolume volume;
Bloom bloom;
Vignette vignette;
void Start()
{
volume.profile.TryGetSettings(out bloom);
volume.profile.TryGetSettings(out vignette);
}
public void Play()
{
StopAllCoroutines();
StartCoroutine(SamuraiVictory());
}
IEnumerator SamuraiVictory()
{
yield return new WaitForSeconds(0.9f);
//Ставим цвета
Color color = Color.blue;
bloom.color.value = color;
vignette.color.value = color;
bloom.dirtTexture.value = sparkTexture;
SoundManager.instance.playClip(electroSFX);
//Прямое направление
float param = 0;
while (param <= 1)
{
bloom.intensity.value = param * maxBloomIntensity;
vignette.intensity.value = param * maxVignetteIntensity;
param += forwardSpeed * Time.deltaTime;
yield return null;
}
param = 1;
while (param >= 0)
{
bloom.intensity.value = param * maxBloomIntensity;
vignette.intensity.value = param * maxVignetteIntensity;
param -= backSpeed * Time.deltaTime;
yield return null;
}
bloom.intensity.value = 0;
vignette.intensity.value = 0;
bloom.dirtTexture.value = null;
}
}