-
Notifications
You must be signed in to change notification settings - Fork 2
/
ButtonFadeDisplay.cs
49 lines (40 loc) · 1.51 KB
/
ButtonFadeDisplay.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
class ButtonFadeDisplay : MonoBehaviour
{
public float displayTime = 1; //Time that message is displayed without fade
public float fadeOutTime = 0.5f; //Time taken to fade out
public GameObject messageButton; //This is a button
public void Display(string message)
{
messageButton.SetActive(true);
StartCoroutine(DisplayRoutine(message));
}
private IEnumerator DisplayRoutine(string message)
{
Image image;
Color OGImageColor, OGTextColor;
Text text;
image = messageButton.GetComponent<Image>(); //Background of button
OGImageColor = image.color; //Original image colour
text = messageButton.GetComponentInChildren<Text>(); //Button text
OGTextColor = text.color; //Save original text colour
text.text = message; //Set button text to message
//Display without fade
for (float t = 0; t < displayTime; t += Time.deltaTime)
{
yield return new WaitForSeconds(Time.deltaTime);
}
//Fade out
for (float t = 0; t < fadeOutTime; t += Time.deltaTime)
{
image.color = Color.Lerp(OGImageColor, Color.clear, Mathf.Min(1, t/fadeOutTime));
text.color = Color.Lerp(OGTextColor, Color.clear, Mathf.Min(1, t/fadeOutTime));
yield return new WaitForSeconds(Time.deltaTime);
}
//Destroy
Destroy(messageButton);
}
}