85 lines
2.2 KiB
C#
85 lines
2.2 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.Rendering.PostProcessing;
|
|
|
|
public class ToasterEffect : MonoBehaviour, IEffect
|
|
{
|
|
|
|
[SerializeField] float forwardSpeed = 0.5f;
|
|
[SerializeField] float backSpeed = 2;
|
|
[SerializeField] float maxBloomIntensity = 20;
|
|
[SerializeField] float maxVignetteIntensity = 0.2f;
|
|
[SerializeField] AudioClip hotSFX;
|
|
|
|
[SerializeField] PostProcessVolume volume;
|
|
Bloom bloom;
|
|
Vignette vignette;
|
|
|
|
[SerializeField] Gradient hotGradient;
|
|
[SerializeField] SpriteRenderer hotSpriteImage;
|
|
[SerializeField] GameObject SmokeEffect;
|
|
|
|
private void Awake()
|
|
{
|
|
volume.profile.TryGetSettings(out bloom);
|
|
volume.profile.TryGetSettings(out vignette);
|
|
}
|
|
|
|
public void Play()
|
|
{
|
|
StopAllCoroutines();
|
|
StartCoroutine(TosterVictory());
|
|
}
|
|
IEnumerator TosterVictory()
|
|
{
|
|
Color color;
|
|
|
|
SoundManager.instance.playClip(hotSFX);
|
|
SmokeEffect.SetActive(true);
|
|
|
|
//Прямое направление
|
|
float param = 0;
|
|
while (param <= 1)
|
|
{
|
|
bloom.intensity.value = param * maxBloomIntensity;
|
|
vignette.intensity.value = param * maxVignetteIntensity;
|
|
|
|
color = hotGradient.Evaluate(param);
|
|
hotSpriteImage.color = color;
|
|
bloom.color.value = color;
|
|
vignette.color.value = color;
|
|
|
|
param += forwardSpeed * Time.deltaTime;
|
|
yield return null;
|
|
}
|
|
|
|
|
|
param = 1;
|
|
while (param > 0)
|
|
{
|
|
param = Mathf.Clamp01(param);
|
|
|
|
bloom.intensity.value = param * maxBloomIntensity;
|
|
vignette.intensity.value = param * maxVignetteIntensity;
|
|
|
|
color = hotGradient.Evaluate(param);
|
|
hotSpriteImage.color = color;
|
|
bloom.color.value = color;
|
|
vignette.color.value = color;
|
|
|
|
param -= backSpeed * Time.deltaTime;
|
|
|
|
yield return null;
|
|
}
|
|
color = hotGradient.Evaluate(0);
|
|
hotSpriteImage.color = color;
|
|
bloom.color.value = color;
|
|
vignette.color.value = color;
|
|
|
|
|
|
bloom.intensity.value = 0;
|
|
vignette.intensity.value = 0;
|
|
}
|
|
}
|