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; } }