|
|
@@ -10,18 +10,6 @@ public class ViewMgr : ViewManager<ViewMgr>
|
|
|
{
|
|
|
//设置视图组
|
|
|
SetViewGroup<HomeFrameView>(1);
|
|
|
- //场景监听
|
|
|
- SceneManager.sceneLoaded += (scene, mode) => {
|
|
|
- if (scene.name == "Home") {
|
|
|
- ResumeViews(dontDestroyViews);
|
|
|
- }
|
|
|
- };
|
|
|
- SceneManager.sceneUnloaded += (scene) => {
|
|
|
- if (scene.name == "Home") {
|
|
|
- DestroyAllViewsExcludeDontDestroy();
|
|
|
- HideViews(dontDestroyViews);
|
|
|
- }
|
|
|
- };
|
|
|
}
|
|
|
|
|
|
//以下名称的预制体通过SceneResourceManager获取
|
|
|
@@ -35,51 +23,4 @@ public class ViewMgr : ViewManager<ViewMgr>
|
|
|
if (scenePrefabs.Contains(viewName)) return SceneResourceManager.Instance.GetPrefab(viewName);
|
|
|
return base.LoadViewPrefab("Home/" + viewName);
|
|
|
}
|
|
|
-
|
|
|
- //以下名称的界面不会随场景销毁而销毁
|
|
|
- HashSet<string> dontDestroyViews = new HashSet<string>(new string[] {
|
|
|
- //Home
|
|
|
- "GameStartView", "ChallengeOptionView", "RoleSelectView", "PKGameOptionView", "PKMatchView"
|
|
|
- });
|
|
|
- protected override void ShowView(ViewBase viewBase, object[] args)
|
|
|
- {
|
|
|
- base.ShowView(viewBase, args);
|
|
|
- string viewName = viewBase.GetType().Name;
|
|
|
- //主要是为了删除名称中的(Clone)
|
|
|
- viewBase.gameObject.name = viewName;
|
|
|
- //某些界面设置为不销毁
|
|
|
- if (dontDestroyViews.Contains(viewName)) viewBase.dontDestroy = true;
|
|
|
- //旧版ui适配新ui框架
|
|
|
- RectTransform rectTransform = (RectTransform) viewBase.transform;
|
|
|
- rectTransform.anchorMin = Vector2.zero;
|
|
|
- rectTransform.anchorMax = Vector2.one;
|
|
|
- rectTransform.pivot = Vector2.one / 2;
|
|
|
- rectTransform.localScale = Vector3.one;
|
|
|
- var canvasScaler = rectTransform.GetComponent<UnityEngine.UI.CanvasScaler>();
|
|
|
- if (canvasScaler) Destroy(canvasScaler);
|
|
|
- //特殊处理
|
|
|
- if (viewName == "HomeView") rectTransform.SetSiblingIndex(0);
|
|
|
- }
|
|
|
-
|
|
|
- public void ResumeViews(IEnumerable<string> viewNames, params object[] args)
|
|
|
- {
|
|
|
- foreach (var viewName in viewNames)
|
|
|
- {
|
|
|
- ViewBase viewBase;
|
|
|
- if (viewDict.TryGetValue(viewName, out viewBase)) {
|
|
|
- ShowView(viewBase, args);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- public void HideViews(IEnumerable<string> viewNames, params object[] args)
|
|
|
- {
|
|
|
- foreach (var viewName in viewNames)
|
|
|
- {
|
|
|
- ViewBase viewBase;
|
|
|
- if (viewDict.TryGetValue(viewName, out viewBase)) {
|
|
|
- HideView(viewBase, false, args);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
}
|