using System.Collections.Generic; using UnityEngine; public class PageController : Singleton { [Header("页面名称标识")] public string PageTag; [Header("初始页面名称")] public string InitPage; private Dictionary PageS = new Dictionary(); // 页面集合 private GameObject TempPage; // 当前页面 private void Start() { Init(); } /// /// 初始化,获取所有页面 /// void Init() { for (int i = 0; i < transform.childCount; i++) { if (transform.GetChild(i).name.Contains(PageTag)) { PageS.Add(transform.GetChild(i).name, transform.GetChild(i).gameObject); } } PageController.Inst.PageCut(InitPage); PageCutButtonController.Inst.PageCut(InitPage); } /// /// 页面切换 /// /// 切换的页面 public void PageCut(string name) { if (PageS.ContainsKey(name)) { if (TempPage != null) { PageActive(TempPage, false); } else { PageActive(false); } PageActive(PageS[name], true); TempPage = PageS[name]; UMPController.Inst.UMPPlayer(name); } else { Debug.LogWarning(string.Format("页面:{0}不存在", name)); } } /// /// 所有页面显示或隐藏 /// /// 显示或隐藏 void PageActive(bool active) { foreach (KeyValuePair page in PageS) { page.Value.SetActive(active); } } /// /// 对某个页面的显示或隐藏 /// /// 指定页面 /// 显示或隐藏 void PageActive(GameObject page, bool active) { page.SetActive(active); } }