35 lines
881 B
C#

using UnityEngine;
using UnityEngine.UI;
[RequireComponent (typeof(Graphic))]
public class ImageBlinker : MonoBehaviour
{
[SerializeField] private float speed = 7;
[SerializeField] private float minAlpha = 0.1f;
[SerializeField] private float maxAlpha = 0.3f;
private Graphic graphic;
private Color originalColor;
void Start()
{
graphic = GetComponent<Graphic>();
originalColor = graphic.color;
}
void Update()
{
float sinValue = Mathf.Sin(Time.time * speed);
float alpha = Remap(sinValue, -1f, 1f, minAlpha, maxAlpha);
Color color = originalColor;
color.a = alpha;
graphic.color = color;
}
float Remap(float value, float fromMin, float fromMax, float toMin, float toMax)
{
return toMin + (value - fromMin) * (toMax - toMin) / (fromMax - fromMin);
}
}