internal void RemoveMonoAction(MonoNoticeAction monoNotice) { if (notifyCallBacks != null) { if (notifyCallBacks.Contains(monoNotice)) { notifyCallBacks.Remove(monoNotice); } } }
internal virtual void UnregisterCallBack(Transform root, Action <BaseNotice> notifyCallBack) { MonoNoticeAction monoNotice = root.GetComponent <MonoNoticeAction>(); if (monoNotice != null) { monoNotice.SetOwn(parent); monoNotice.RemoveCallBack(notifyCallBack); if (monoNotice.CallCount == 0) { GameObject.Destroy(monoNotice); } } }
internal virtual void RegisterCallBack(Transform root, Action <BaseNotice> notifyCallBack) { MonoNoticeAction monoNotice = root.GetComponent <MonoNoticeAction>(); if (monoNotice == null) { monoNotice = root.gameObject.AddComponent <MonoNoticeAction>(); if (notifyCallBacks == null) { notifyCallBacks = new List <MonoNoticeAction>(); } monoNotice.SetOwn(parent); notifyCallBacks.Add(monoNotice); } monoNotice.AddCallBack(notifyCallBack); }