public void SetMessage(string msg) { messageBar.text = msg; messageShadow.text = msg; Color startColor1 = messageBar.color; startColor1.a = 1; messageBar.color = startColor1; Color endColor1 = messageBar.color; endColor1.a = 0; Color startColor2 = messageShadow.color; startColor2.a = 1; messageShadow.color = startColor2; Color endColor2 = messageShadow.color; endColor2.a = 0; messageBar.gameObject.SetActive(true); messageShadow.gameObject.SetActive(true); aq.Reset(); aq.Delay(messageHold); aq.AddCoroutine(startColor1.LerpColor(endColor1, messageFade, (Color c) => messageBar.color = c)); aq.AddCoroutine(startColor2.LerpColor(endColor2, messageFade, (Color c) => messageShadow.color = c)); aq.Delay(messageFade); aq.Add(() => messageBar.gameObject.SetActive(false)); aq.Add(() => messageShadow.gameObject.SetActive(false)); aq.Run(); }
// After clearing the last message, you can then queue up another message public MessageBar queueMessage(string msg, bool hold = false) { aq.Add(() => setMessage(msg)); aq.AddCoroutine(outsideY.LerpFloat(insideY, speed, (f) => moveGroup(f), curve)); if (!hold) { aq.Delay(speed); aq.Delay(pause); aq.AddCoroutine(insideY.LerpFloat(outsideY, speed, (f) => moveGroup(f), curve)); aq.Delay(speed); } return(this); }