using UnityEngine;

public class MeshRendererHintAnimation : MonoBehaviour
{
    public MeshRenderer meshRendererToChange;
    private Color meshRendererToChangeDefaultColor;
    //Make sure when using RGBA-Colors, the A-value of animationStartColor 
    //and animationEndColor is the same OR try with value = 255
    public Color animationStartColor;
    public Color animationEndColor;

    public float animateDuration;
    private bool animating = false;
    private float timer = 0;

    // Start is called before the first frame update
    void Start()
    {
        if (meshRendererToChange != null)
            meshRendererToChangeDefaultColor = meshRendererToChange.material.color;
    }

    // Update is called once per frame
    void Update()
    {
        if (animating) {
            this.timer += Time.deltaTime;
            Animate();
        }
    }

    public void AnimationTrigger() {
        if (meshRendererToChange != null)
            animating = true;
    }

    private void Animate() {
        if (timer >= animateDuration)
        {
            animating = false;
            timer = 0;
            meshRendererToChange.material.color = meshRendererToChangeDefaultColor;
        }
        else {
            meshRendererToChange.material.color = Color.Lerp(animationStartColor, animationEndColor, Mathf.PingPong(Time.time, 1));
        }

    }
}