public bool UnRegisterRedPointDelegate(ERedPointType redPointType, IRedPointDelegate callback) { if (redPointType == ERedPointType.None || callback == null) { return(false); } bool result = false; RedPointDelegateInfo delegateInfo = GetRedPointDelegate(redPointType); if (delegateInfo != null) { result = delegateInfo.delegates.Remove(callback); if (delegateInfo.delegates.Count == 0) { UnRegisterTipsDelegate(redPointType); } } return(result); }
public bool RegisterRedPointDelegate(ERedPointType redPointType, IRedPointDelegate callback) { if (redPointType == ERedPointType.None || callback == null) { return(false); } bool alreadyRegister = false; RedPointDelegateInfo delegateInfo = GetRedPointDelegate(redPointType); if (delegateInfo != null) { for (int i = 0; i < delegateInfo.delegates.Count; i++) { if (delegateInfo.delegates[i] == callback) { alreadyRegister = true; break; } } } if (!alreadyRegister) { if (delegateInfo == null) { delegateInfo = SimplePool <RedPointDelegateInfo> .Get(); delegateInfo.redPointType = redPointType; redPointDelegateDict[redPointType] = delegateInfo; } delegateInfo.delegates.Add(callback); } return(true); }