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