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 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(pages[index].bundleName, pageName.ToString() + ".prefab"); nowPage = Instantiate(prefab, transform); break; } } } }