82 lines
2.1 KiB
C#
82 lines
2.1 KiB
C#
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class PageController : Singleton<PageController>
|
|
{
|
|
[Header("页面名称标识")]
|
|
public string PageTag;
|
|
[Header("初始页面名称")]
|
|
public string InitPage;
|
|
private Dictionary<string, GameObject> PageS = new Dictionary<string, GameObject>(); // 页面集合
|
|
private GameObject TempPage; // 当前页面
|
|
|
|
private void Start()
|
|
{
|
|
Init();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 初始化,获取所有页面
|
|
/// </summary>
|
|
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);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 页面切换
|
|
/// </summary>
|
|
/// <param name="name">切换的页面</param>
|
|
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));
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 所有页面显示或隐藏
|
|
/// </summary>
|
|
/// <param name="active">显示或隐藏</param>
|
|
void PageActive(bool active)
|
|
{
|
|
foreach (KeyValuePair<string, GameObject> page in PageS)
|
|
{
|
|
page.Value.SetActive(active);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 对某个页面的显示或隐藏
|
|
/// </summary>
|
|
/// <param name="page">指定页面</param>
|
|
/// <param name="act">显示或隐藏</param>
|
|
void PageActive(GameObject page, bool active)
|
|
{
|
|
page.SetActive(active);
|
|
}
|
|
}
|