Health/Assets/Shift - Complete Sci-Fi UI/Scripts/Rendering/BlurManager.cs

86 lines
2.1 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Michsky.UI.Shift
{
public class BlurManager : MonoBehaviour
{
[Header("Resources")]
public Material blurMaterial;
[Header("Settings")]
[Range(0.0f, 10)] public float blurValue = 5.0f;
[Range(0.1f, 50)] public float animationSpeed = 25;
public string customProperty = "_Size";
float currentBlurValue;
void Start()
{
if (customProperty == null)
customProperty = "_Size";
blurMaterial.SetFloat(customProperty, 0);
}
IEnumerator BlurIn()
{
currentBlurValue = blurMaterial.GetFloat(customProperty);
while (currentBlurValue <= blurValue)
{
currentBlurValue += Time.deltaTime * animationSpeed;
if (currentBlurValue >= blurValue)
currentBlurValue = blurValue;
blurMaterial.SetFloat(customProperty, currentBlurValue);
yield return null;
}
StopCoroutine("BlurIn");
}
IEnumerator BlurOut()
{
currentBlurValue = blurMaterial.GetFloat(customProperty);
while (currentBlurValue >= 0)
{
currentBlurValue -= Time.deltaTime * animationSpeed;
if (currentBlurValue <= 0)
currentBlurValue = 0;
blurMaterial.SetFloat(customProperty, currentBlurValue);
yield return null;
}
StopCoroutine("BlurOut");
}
public void BlurInAnim()
{
if (gameObject.activeInHierarchy == false)
return;
StopCoroutine("BlurOut");
StartCoroutine("BlurIn");
}
public void BlurOutAnim()
{
if (gameObject.activeInHierarchy == false)
return;
StopCoroutine("BlurIn");
StartCoroutine("BlurOut");
}
public void SetBlurValue(float cbv)
{
blurValue = cbv;
}
}
}