/// <summary> /// 在指定模块层弹出一个新的界面。 /// </summary> /// <param name="moduleLayer">模块分层</param> /// <param name="path">模块所对应的资源路径</param> /// <param name="callback">创建成功后的回调</param> public static void Popup(ModuleLayer moduleLayer, string path, Action <RectTransformLayer> callback) { UILayerGroup layerGroup; if (!mLayerMap.TryGetValue(moduleLayer, out layerGroup)) { Debug.Log("Undefined module layer -> " + moduleLayer); return; } layerGroup.Add(layer => { //处理场景遮挡通知 if (layerGroup.Layers.Count > 1) { var lowerLayer = (RectTransformLayer)layerGroup.Layers[layerGroup.Layers.Count - 2]; var view = lowerLayer.Root.GetComponent <ModuleView>(); view.OnOverlay(true); } //处理提示遮挡通知 if (moduleLayer == ModuleLayer.Tip && checkIsNewOverlayer(layer)) { notifyTopLayerOverlay(ModuleLayer.Scene, true); } //图层创建成功回调 var rectTransformLayer = (RectTransformLayer)layer; if (callback != null) { callback(rectTransformLayer); } }, mFactory, path); }
private static void notifyTopLayerOverlay(ModuleLayer layer, bool isOverlay) { var topLayer = (RectTransformLayer)mLayerMap[layer].Layers.LastOrDefault(); if (topLayer != null) { var sceneView = topLayer.Root.GetComponent <ModuleView>(); sceneView.OnOverlay(isOverlay); } }