62 lines
1.6 KiB
C#
62 lines
1.6 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,
|
|
loginPage=1
|
|
}
|
|
[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.loginPage);
|
|
}
|
|
public async void OpenPage(PageName pageName)
|
|
{
|
|
Debug.Log("打开页面:" + pageName);
|
|
switch (nowPageName)
|
|
{
|
|
case PageName.nullPage:
|
|
break;
|
|
case PageName.loginPage:
|
|
Destroy(nowPage);
|
|
break;
|
|
|
|
}
|
|
int index = pages.FindIndex(x => x.pageName == pageName);
|
|
switch (pageName)
|
|
{
|
|
case PageName.nullPage:
|
|
break;
|
|
|
|
case PageName.loginPage:
|
|
GameObject prefab = await LoadRes.Instance.LoadAssetAsync<GameObject>(pages[index].bundleName, pageName.ToString() + ".prefab");
|
|
nowPage = Instantiate(prefab, transform);
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|