protected void AddColliderMode(PanelColliderMode mode) { if (ColliderMode == mode) { return; } ColliderMode = mode; switch (ColliderMode) { case PanelColliderMode.None: break; case PanelColliderMode.Normal: GameUtility.AddColliderBgToTarget(this.gameObject, "Mask", ResourcesManager.GetAtlas("Atlas_MJ_Common"), true); break; case PanelColliderMode.WithBg: GameUtility.AddColliderBgToTarget(this.gameObject, "Mask", ResourcesManager.GetAtlas("Atlas_MJ_Common"), false); break; default: break; } }
public PanelData(PanelType type, PanelColliderMode colliderMode = PanelColliderMode.None, PanelNavigationMode navigationMode = PanelNavigationMode.Navigation, PanelPopupMode popupMode = PanelPopupMode.DoNothing, bool isClearNavigation = false) { Type = type; ColliderMode = colliderMode; NavigationMode = navigationMode; PopupMode = popupMode; IsClearNavigation = isClearNavigation; }
/// <summary> /// 添加背景阻挡层 /// </summary> private void AddColliderBG() { PanelColliderMode colliderMode = panelData.ColliderMode; if (colliderMode == PanelColliderMode.None) { return; } GameObject bg = new GameObject("bg"); RectTransform rt = bg.AddComponent <RectTransform>(); rt.SetParent(transform); rt.SetSiblingIndex(0); rt.anchorMin = Vector2.zero; rt.anchorMax = Vector2.one; rt.pivot = new Vector2(0.5f, 0.5f); rt.anchoredPosition = Vector2.zero; rt.sizeDelta = Vector2.zero; Image image = bg.AddComponent <Image>(); Button button = bg.AddComponent <Button>(); button.onClick.AddListener(OnClickCollider); //透明 if (colliderMode == PanelColliderMode.Transparent) { //BUG image.color = new Color(0, 0, 0, 0); } else if (colliderMode == PanelColliderMode.translucent) { image.color = new Color(0, 0, 0, 0.25f); } else if (colliderMode == PanelColliderMode.Image) { image.sprite = UIConfig.ColliderSprite; } }