/// <summary> /// 加载场景UI /// </summary> /// <param name="type"></param> /// <returns></returns> public GameObject LoadSceneUI(SceneUIType type, Action OnLoadComplete = null) { GameObject obj = null; switch (type) { case SceneUIType.LogOn: obj = ResourcesMgr.Instance.Load(ResourcesMgr.ResourceType.UIScene, "UI_Root_Logon"); CurrentUIScene = obj.GetComponent <UISceneViewBase>(); break; case SceneUIType.Loading: break; case SceneUIType.SelectRole: obj = ResourcesMgr.Instance.Load(ResourcesMgr.ResourceType.UIScene, "UI_Root_SelectRole"); CurrentUIScene = obj.GetComponent <UISceneViewBase>(); break; case SceneUIType.MainCity: obj = ResourcesMgr.Instance.Load(ResourcesMgr.ResourceType.UIScene, "UI_Root_MainCity"); CurrentUIScene = obj.GetComponent <UISceneViewBase>(); break; } CurrentUIScene.OnLoadComplete = OnLoadComplete; return(obj); }
/// <summary> /// 关闭场景UI /// </summary> /// <param name="type"></param> public void CloseSceneUI(SceneUIType type) { if (sceneUIDic.ContainsKey(type)) { sceneUIDic[type].SetActive(false); } }
public Transform currentUIWindow; //当前UI界面 /// <summary> /// 显示场景UI /// </summary> /// <param name="type"></param> /// <returns></returns> public GameObject ShowSceneUI(SceneUIType type) { GameObject go = null; if (!sceneUIDic.ContainsKey(type)) { //枚举名称要与预设名称对应 go = ResourcesManager.Instance.Load(ResourceType.SceneUI, type.ToString()); if (go == null) { return(null); } sceneUIDic.Add(type, go); go.transform.parent = sceneUIParent; go.transform.localPosition = Vector3.zero; go.transform.localScale = Vector3.one; go.transform.eulerAngles = Vector3.zero; } else { go = sceneUIDic[type]; } go.SetActive(true); return(go); }
/// <summary> /// 同步加载场景UI(Resources) /// </summary> /// <param name="type"></param> /// <returns></returns> public GameObject LoadSceneUIFromResouces(SceneUIType type, OnInitComplete onInitComplete = null) { GameObject obj = ResourcesManager.Instance.Load(ResourceType.UIScene, string.Format("UI_Root_{0}", type)); CurrentUIScene = obj.GetComponent <UISceneViewBase>(); CurrentUIScene.OnInitComplete = onInitComplete; return(obj); }
/// <summary> /// 加载场景UI /// </summary> /// <param name="type"></param> /// <returns></returns> public void LoadSceneUI(SceneUIType type, System.Action <GameObject> OnLoadComplete, XLuaCustomExport.OnCreate OnCreate = null, string path = null) { string strUIName = string.Empty; string newPath = string.Empty; if (type != SceneUIType.None) { switch (type) { case SceneUIType.LogOn: strUIName = "UI_Root_LogOn"; break; case SceneUIType.SelectRole: strUIName = "UI_Root_SelectRole"; break; case SceneUIType.Loading: break; case SceneUIType.MainCity: strUIName = "UI_Root_MainCity"; break; } newPath = string.Format("Download/Prefab/UIPrefab/UIScene/{0}.assetbundle", strUIName); } else { newPath = path; } AssetBundleMgr.Instance.LoadOrDownload(newPath, strUIName, (GameObject obj) => { obj = Object.Instantiate(obj); CurrentUIScene = obj.GetComponent <UISceneViewBase>(); if (OnLoadComplete != null) { OnLoadComplete(obj); } if (OnCreate != null) { //此时表示 是从Lua中加载的 obj.GetOrCreatComponent <LuaViewBehaviour>(); OnCreate(obj); } }); }
/// <summary> /// 异步加载场景UI(Assetbundle) /// </summary> /// <param name="type"></param> /// <param name="onLoadComplete">加载完毕回调</param> /// <param name="onInitComplete">场景UI初始化完毕回调</param> public void LoadSceneUIAsync(SceneUIType type, OnLoadComplete onLoadComplete, OnInitComplete onInitComplete = null) { string strUIName = string.Format("ui_root_{0}", type.ToString().ToLower()); string path = string.Format("download/{0}/prefab/uiprefab/uiscenes/{1}.drb", ConstDefine.GAME_NAME, strUIName); Debug.Log("打开场景UI: " + strUIName); AssetBundleManager.Instance.LoadOrDownload(path, strUIName, (GameObject go) => { Debug.Log("场景UI资源加载完毕"); go = UnityEngine.Object.Instantiate(go); CurrentUIScene = go.GetComponent <UISceneViewBase>(); CurrentUIScene.OnInitComplete = onInitComplete; if (onLoadComplete != null) { onLoadComplete(go); } }); }
/// <summary> /// 加载场景UI /// </summary> /// <param name="type"></param> /// <returns></returns> public GameObject LoadSceneUI(SceneUIType type) { GameObject obj = null; switch (type) { case SceneUIType.LogOn: obj = ResourceMgr.Instance.Load(ResourceMgr.ResourceType.UIScene, "UI_Root_LogOn"); CurrentUIScene = obj.GetComponent <UISceneLogonCtrl>(); break; case SceneUIType.Loading: break; case SceneUIType.MainCity: obj = ResourceMgr.Instance.Load(ResourceMgr.ResourceType.UIScene, "UI Root_City"); CurrentUIScene = obj.GetComponent <UISceneCityCtrl>(); break; } return(obj); }
/// <summary> /// 场景UI加载 /// </summary> /// <param name="type"></param> /// <returns></returns> public GameObject LoadSceneUI(SceneUIType type) { GameObject go = null; switch (type) { case SceneUIType.LogOn: go = ResourcesMgr.Instance.Load(ResourcesType.UIScene, "UIRoot_LogOnScene"); currentUIScene = go.GetComponent <SceneLogOnCtrl>(); break; case SceneUIType.Loading: break; case SceneUIType.MainCity: go = ResourcesMgr.Instance.Load(ResourcesType.UIScene, "UIRoot_MainCity"); currentUIScene = go.GetComponent <SceneMainCityCtrl>(); break; } return(go); }
/// <summary> /// 同步加载场景UI(Assetbundle) /// </summary> /// <param name="type"></param> /// <param name="onInitComplete"></param> /// <returns></returns> public GameObject LoadSceneUIFromAssetBundle(SceneUIType type, OnInitComplete onInitComplete = null) { foreach (KeyValuePair <SceneUIType, UISceneViewBase> pair in m_UISceneDic) { if (pair.Value != null) { pair.Value.gameObject.SetActive(false); } } GameObject ret = null; if (m_UISceneDic.ContainsKey(type) && m_UISceneDic[type] != null) { CurrentUIScene = m_UISceneDic[type]; CurrentUIScene.gameObject.SetActive(true); ret = CurrentUIScene.gameObject; } else { string strUIName = string.Format("ui_root_{0}", type.ToString().ToLower()); string path = string.Format("download/{0}/prefab/uiprefab/uiscenes/{1}.drb", ConstDefine.GAME_NAME, strUIName); Debug.Log("打开场景UI: " + strUIName); float time = Time.realtimeSinceStartup; ret = AssetBundleManager.Instance.LoadAssetBundle <GameObject>(path, strUIName); Debug.Log("加载场景UI资源耗时" + (Time.realtimeSinceStartup - time).ToString() + "秒"); ret = UnityEngine.Object.Instantiate(ret); CurrentUIScene = ret.GetComponent <UISceneViewBase>(); if (CurrentUIScene.persistenceType == UIScenePersistenceType.LoadSceneHide) { UnityEngine.Object.DontDestroyOnLoad(ret); } m_UISceneDic[type] = CurrentUIScene; CurrentUIScene.OnInitComplete = onInitComplete; } return(ret); }
public GameObject LoadSceneUI(SceneUIType type) { GameObject obj = null; switch (type) { case SceneUIType.LOGIN: obj = ResourcesManager.Instance. Load(ResourcesManager.ResourceType.UI_SCENE, "UIRoot_Login"); currentScene = obj.GetComponent <Leo_UISceneLoginController>(); break; case SceneUIType.LOADING: break; case SceneUIType.MAIN: obj = ResourcesManager.Instance. Load(ResourcesManager.ResourceType.UI_SCENE, "UIRoot_Main"); currentScene = obj.GetComponent <Leo_UISceneMainController>(); break; } return(obj); }