// Use this for initialization void Start() { CurrentFadeTime = 0.0f; TextMeshProLink = gameObject.GetComponent <TMPro.TextMeshProUGUI>(); TextMeshProLink.color = new Color(TextMeshProLink.color.r, TextMeshProLink.color.g, TextMeshProLink.color.b, 0.0f); m_fadeState = UIFadeState.In; }
// Update is called once per frame void Update() { CurrentFadeTime += Time.deltaTime; switch (m_fadeState) { case UIFadeState.In: if (CurrentFadeTime > FadeTime) { CurrentFadeTime = 0.0f; m_fadeState = UIFadeState.Stay; TextMeshProLink.color = new Color(TextMeshProLink.color.r, TextMeshProLink.color.g, TextMeshProLink.color.b, 1.0f); } else { TextMeshProLink.color = new Color(TextMeshProLink.color.r, TextMeshProLink.color.g, TextMeshProLink.color.b, CurrentFadeTime / FadeTime); } break; case UIFadeState.Stay: if (CurrentFadeTime > FadeTime) { CurrentFadeTime = 0.0f; m_fadeState = UIFadeState.Out; } break; case UIFadeState.Out: if (CurrentFadeTime > FadeTime) { CurrentFadeTime = 0.0f; m_fadeState = UIFadeState.End; TextMeshProLink.color = new Color(TextMeshProLink.color.r, TextMeshProLink.color.g, TextMeshProLink.color.b, 0.0f); } else { TextMeshProLink.color = new Color(TextMeshProLink.color.r, TextMeshProLink.color.g, TextMeshProLink.color.b, 1.0f - (CurrentFadeTime / FadeTime)); } break; case UIFadeState.End: gameObject.SetActive(false); if (nextItem) { nextItem.SetActive(true); } else { SceneManager.LoadScene(nextScene); } break; } }