Files
ZHGD_Web/Assets/Script/Controller/PageController.cs

82 lines
2.1 KiB
C#
Raw Normal View History

2025-07-13 23:16:20 +08:00
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);
}
}