60 lines
1.5 KiB
C#
60 lines
1.5 KiB
C#
|
|
using System.Collections.Generic;
|
||
|
|
using System.Threading.Tasks;
|
||
|
|
using Kill.Base;
|
||
|
|
using UnityEngine;
|
||
|
|
namespace Kill.UI
|
||
|
|
{
|
||
|
|
public class UIManager : MonoBehaviour
|
||
|
|
{
|
||
|
|
public enum PageName
|
||
|
|
{
|
||
|
|
nullPage = 0,
|
||
|
|
MainPage = 1,
|
||
|
|
TestPage = 2
|
||
|
|
}
|
||
|
|
[System.Serializable]
|
||
|
|
public struct Page
|
||
|
|
{
|
||
|
|
public PageName pageName;
|
||
|
|
public string bundleName;
|
||
|
|
}
|
||
|
|
public static UIManager Instance;
|
||
|
|
public List<Page> pages;
|
||
|
|
public GameObject nowPage;
|
||
|
|
public PageName nowPageName = PageName.nullPage;
|
||
|
|
void Awake()
|
||
|
|
{
|
||
|
|
Instance=this;
|
||
|
|
}
|
||
|
|
public void Init()
|
||
|
|
{
|
||
|
|
OpenPage(PageName.MainPage);
|
||
|
|
}
|
||
|
|
public async void OpenPage(PageName pageName)
|
||
|
|
{
|
||
|
|
switch (nowPageName)
|
||
|
|
{
|
||
|
|
case PageName.nullPage:
|
||
|
|
break;
|
||
|
|
case PageName.MainPage:
|
||
|
|
Destroy(nowPage);
|
||
|
|
break;
|
||
|
|
|
||
|
|
}
|
||
|
|
int index = pages.FindIndex(x => x.pageName == pageName);
|
||
|
|
switch (pageName)
|
||
|
|
{
|
||
|
|
case PageName.nullPage:
|
||
|
|
break;
|
||
|
|
|
||
|
|
case PageName.MainPage:
|
||
|
|
GameObject prefab = await LoadRes.Instance.LoadAssetAsync<GameObject>(pages[index].bundleName, pageName.ToString()+".prefab");
|
||
|
|
nowPage = Instantiate(prefab, transform);
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|