using System; using UnityEngine; using System.Collections; using System.Collections.Generic; using UnityEngine.UI; public class AnnounceManager { private class Content { public bool IsImage; public string text; public TextAnchor Alignment; public Content(bool isImage, string text, TextAnchor alignment) { this.text = text; this.IsImage = isImage; this.Alignment = alignment; } } #region Config public static string DefaultLanguage = "null"; public static string Hants = "Chinese"; public static string Hant = "ChineseTraditional"; public static string En = "English"; #endregion public static bool Initialized; private static List TextList = new List(); private static Dictionary> ContentsDic = new Dictionary>(); public static void AddLine(bool isImage, string language, string content, TextAnchor alignment) { if (language == DefaultLanguage) { AddLine(isImage, En, content, alignment); AddLine(isImage, Hants, content, alignment); AddLine(isImage, Hant, content, alignment); } if (!ContentsDic.ContainsKey(language)) { ContentsDic.Add(language, new List()); } ContentsDic[language].Add(new Content(isImage, content, alignment)); } public static void Show() { if (!Initialized) { Initialize(GetLanguage()); } else { SwitchLanguage(GetLanguage()); } AudioManager.PlayClip(Clip.BubbleClip); ResourceManager.Get(ObjectLabel.R_Notify).TweenForCG(); Auxiliary.Instance.DelayCall ( () => { ResourceManager.Get(ObjectLabel.R_Grid).CalculateLayoutInputVertical(); ResourceManager.Get(ObjectLabel.R_Grid).SetLayoutVertical(); }, 1 ); } public static void Initialize(string language) { Initialized = true; List contents = ContentsDic[language]; for (int i = 0; i < contents.Count; i++) { Transform transform = ResourceManager.Get("NotifyItem", Folder.UI, false, ResourceManager.Get(ObjectLabel.R_Grid), false); if (contents[i].IsImage) { transform.GetComponent().fontSize = 300; transform.GetComponent().verticalOverflow = VerticalWrapMode.Overflow; transform.GetComponent().horizontalOverflow = HorizontalWrapMode.Overflow; transform.GetComponent().resizeTextForBestFit = false; transform.GetComponent().enabled = true; transform.GetChild(0).GetComponent().sprite = HttpManager.NotificationSprite; } transform.GetComponent().text = contents[i].text; transform.GetComponent().alignment = contents[i].Alignment; TextList.Add(transform.GetComponent()); } } public static void SwitchLanguage(string language) { for (int i = 0; i < TextList.Count; i++) { TextList[i].text = ContentsDic[language][i].text; } } public static string GetLanguage() { if (LanguageManager.CurrentLanguage == CurrentLanguage.ChineseSimplified) { return Hants; } else if (LanguageManager.CurrentLanguage == CurrentLanguage.ChineseTraditional) { return Hant; } else if (LanguageManager.CurrentLanguage == CurrentLanguage.English) { return En; } else { throw new Exception(); } } }