1
0
Fork 0
LaboratoryProtection/Assets/UnityTest/ZXL/Scripts/UI/UIManager.cs

69 lines
1.6 KiB
C#

using System;
using System.Collections.Generic;
using Sirenix.OdinInspector;
using UnityEngine;
namespace UnityTest.ZXL
{
public class UIManager : BaseAutoMono<UIManager>
{
public List<UIObjectData> uiObjectData = new List<UIObjectData>();
public void ShowUI(UIType uiType)
{
foreach (var objectData in uiObjectData)
{
if (objectData.uiType == uiType)
{
objectData.ui.gameObject.SetActive(true);
}
}
}
public void HideUI(UIType uiType)
{
foreach (var objectData in uiObjectData)
{
if (objectData.uiType == uiType)
{
objectData.ui.gameObject.SetActive(false);
}
}
}
public void HideAllUI()
{
foreach (var objectData in uiObjectData)
{
objectData.ui.gameObject.SetActive(false);
}
}
#if UNITY_EDITOR
[Button]
void Add()
{
var uis = this.gameObject.GetComponentAllChild<UI>();
foreach (var ui in uis)
{
uiObjectData.Add(new UIObjectData() {uiType = ui.uiType, ui = ui});
}
}
#endif
}
public enum UIType
{
Chapter, //章节
StrongTips, //强提示
WeakTips, //弱提示
Dialogue, //对话
}
[System.Serializable]
public struct UIObjectData
{
public UIType uiType;
public UI ui;
}
}