Beispiel #1
0
 /// <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);
        }
    }