using System; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; [ExecuteAlways] public class ObjectiveText : MonoBehaviour { [SerializeField] public List visualObjects; [SerializeField] private Color inCompleteColor = Color.white; [SerializeField] private Color completeColor = Color.yellow; [SerializeField] private float speed; [SerializeField] private Animator animator; // Start is called before the first frame update private void Start() { } // Update is called once per frame private void Update() { foreach (var item in visualObjects) if (item.isComplete) item.icon.color = Color.Lerp(item.icon.color, completeColor, Time.deltaTime * speed); else item.icon.color = Color.Lerp(item.icon.color, inCompleteColor, Time.deltaTime * speed); } public void FadeOut() { animator.Play("FadeOut"); } public void FadeIn() { animator.Play("FadeIn"); } } [Serializable] public class VisualObjectiveItemGUI { public TMP_Text text; public Image icon; public bool isComplete; }