public void Unsubscribe(int hash, Action <object> handler) { int num = 0; while (true) { if (num >= entries.size) { return; } Entry entry = entries[num]; if (entry.hash == hash) { Entry entry2 = entries[num]; if (entry2.handler == handler) { break; } } num++; } if (currentlyTriggering == 0) { entries.RemoveAt(num); } else { dirty = true; Entry value = entries[num]; value.handler = null; entries[num] = value; } }
public void UnregisterEvent(GameObject target, int eventName, Action <object> handler) { int num = 0; while (true) { if (num >= subscribedEvents.size) { return; } SubscribedEntry subscribedEntry = subscribedEvents[num]; if (subscribedEntry.hash == eventName) { SubscribedEntry subscribedEntry2 = subscribedEvents[num]; if (subscribedEntry2.handler == handler) { SubscribedEntry subscribedEntry3 = subscribedEvents[num]; if ((UnityEngine.Object)subscribedEntry3.go == (UnityEngine.Object)target) { break; } } } num++; } subscribedEvents.RemoveAt(num); }
public void Remove(AttributeModifier modifier) { int num = 0; while (true) { if (num >= Modifiers.Count) { return; } if (Modifiers[num] == modifier) { break; } num++; } Modifiers.RemoveAt(num); if (OnDirty != null) { OnDirty(); } }