/// <summary> /// 4: 隐藏/显示 某个UICanvas下的所有UI,通过参数UICanvasFlag确定,isHid控制显示/隐藏 /// </summary> /// <param name="canvasFlag">UI图层</param> /// <param name="isHid">控制显示/隐藏</param> public void HidUICanvas(UICanvasFlag canvasFlag, bool isHid) { if (canvasFlag == UICanvasFlag.All_Canvas) { for (int i = 0; i < canvasList.Count; ++i) { canvasList[i].GetComponent <CanvasGroup>().alpha = isHid ? 0 : 1; } } else { int startIndex = (int)canvasFlag + 1; int maxIndex = (int)UICanvasFlag.Max; for (int i = startIndex; i < maxIndex; ++i) { canvasList[i].GetComponent <CanvasGroup>().alpha = isHid ? 0 : 1; } } }
/// <summary> /// 开启/关闭 UICanvas的 点击检测 ,关闭后不在拦截点击事件 /// </summary> /// <param name="canvasFlag"></param> public void BlockCanvasRaycasts(UICanvasFlag canvasFlag, bool isBlock) { if (canvasFlag == UICanvasFlag.All_Canvas) { for (int i = 0; i < canvasList.Count; ++i) { CheckOutCanvasRaycasts(i, isBlock); } } else { int startIndex = (int)canvasFlag + 1; int maxIndex = (int)UICanvasFlag.Max; for (int i = startIndex; i < maxIndex; ++i) { CheckOutCanvasRaycasts(i, isBlock); } } // 最后 更新下各个Canvas的显示状态 DoBlockCanvasRaycasts(); }
public Camera GetCanvasCamera(UICanvasFlag canvasFlag) { return(canvasList[(int)canvasFlag].GetComponent <Canvas>().worldCamera); }
// 关闭UICanvas捕获点击操作 的事件 private void OnUnBlockCanvasRaycasts(GameEvent e) { UICanvasFlag canvasFlag = (UICanvasFlag)e.data; BlockCanvasRaycasts(canvasFlag, false); }
// 显示UICanvas 的回调 private void OnShowUICanvas(GameEvent e) { UICanvasFlag canvasFlag = (UICanvasFlag)e.data; HidUICanvas(canvasFlag, false); }
// =============================== 事件回调 ======================= // 隐藏UICanvas 的回调 private void OnHidUICanvas(GameEvent e) { UICanvasFlag canvasFlag = (UICanvasFlag)e.data; HidUICanvas(canvasFlag, true); }