70 lines
1.8 KiB
C#
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;
|
|
}
|
|
}
|