38 lines
978 B
C#
38 lines
978 B
C#
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
[RequireComponent (typeof(Graphic))]
|
|
public class ImageBlinkerCurved : MonoBehaviour
|
|
{
|
|
[SerializeField] private float speed = 7;
|
|
[SerializeField] private float minAlpha = 0.1f;
|
|
[SerializeField] private float maxAlpha = 0.3f;
|
|
|
|
[SerializeField] private AnimationCurve curve;
|
|
|
|
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);
|
|
alpha = curve.Evaluate(alpha);
|
|
|
|
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);
|
|
}
|
|
}
|