using System.Collections; using UnityEngine.UI; namespace AibisDream { public class MainUIController : Singleton { private const string TVScene = "TV Scene"; private const string BlackImage = "Fade Image"; private const string NewsImage = "News"; #region 主场景图片 private FadeImage _tvScene; private FadeImage _blackImage; private FadeImage _news; #endregion protected override void Awake() { base.Awake(); InitChildObj(); } #region 基本淡入淡出 public void FadeIn(float duration) { _blackImage.FadeIn(duration); } public IEnumerator FadeInSync(float duration) { yield return _blackImage.FadeInSync(duration); } public void FadeOut(float duration) { _blackImage.FadeOut(duration); } public IEnumerator FadeOutSync(float duration) { yield return _blackImage.FadeOutSync(duration); } #endregion #region TV场景淡入淡出 public void TVFadeIn(float duration) { _tvScene.FadeIn(duration); _news.FadeIn(duration); } public IEnumerator TVFadeInSync(float duration) { _news.FadeIn(duration); yield return _tvScene.FadeInSync(duration); } public void TVFadeOut(float duration) { _tvScene.FadeOut(duration); _news.FadeOut(duration); } public IEnumerator TVFadeOutSync(float duration) { _news.FadeOut(duration); yield return _tvScene.FadeOutSync(duration); } public void SwitchTV(string newsName) { _news.SwitchImage($"Art/Background/{newsName}"); } #endregion /// /// 隐藏整个UI /// public void HideMainUI() { gameObject.SetActive(false); } private void InitChildObj() { var rawTvScene = transform.Find(TVScene).gameObject.GetComponent(); _tvScene = new FadeImage(rawTvScene); var rawBlackImage = transform.Find(BlackImage).gameObject.GetComponent(); _blackImage = new FadeImage(rawBlackImage); var rawNews = transform.Find(NewsImage).gameObject.GetComponent(); _news = new FadeImage(rawNews); } } }