/// <summary> /// Applied before Unsubscribe runs. /// </summary> internal static void Prefix(ArrayRef <IntraObjectRoute> ___intraObjectRoutes, int eventName, int subscribeHandle, bool suppressWarnings) { if (!suppressWarnings && ___intraObjectRoutes.FindIndex((route) => route. eventHash == eventName && route.handlerIndex == subscribeHandle) < 0) { DebugLogger.DumpStack(); } }
public void Unsubscribe(int eventName, int subscribeHandle, bool suppressWarnings = false) { int num = intraObjectRoutes.FindIndex((IntraObjectRoute route) => route.eventHash == eventName && route.handlerIndex == subscribeHandle); if (num == -1) { if (!suppressWarnings) { Debug.LogWarning("Failed to Unsubscribe event handler: " + intraObjectDispatcher[eventName][subscribeHandle].ToString() + "\nNot subscribed to event"); } } else if (currentlyTriggering == 0) { intraObjectRoutes.RemoveAtSwap(num); } else { dirty = true; intraObjectRoutes[num] = default(IntraObjectRoute); } }