コード例 #1
0
    private void ProcessQueuedListener(QueuedListener queuedListener)
    {
        AbstractEventHandler eventHandler;

        if (Instance.eventListeners.TryGetValue(queuedListener.eventType, out eventHandler))
        {
            eventHandler.AddListener(queuedListener.internalDelegate, queuedListener.onEvent, queuedListener.handle, queuedListener.args);
        }
        else
        {
            RegisterEvent(queuedListener.eventType).AddListener(queuedListener.internalDelegate, queuedListener.onEvent, queuedListener.handle, queuedListener.args);
        }
    }
コード例 #2
0
    private void LateUpdate()
    {
        while (queuedRemoveListeners.Count > 0)
        {
            QueuedListener queuedListener = queuedRemoveListeners[queuedRemoveListeners.Count - 1];
            queuedRemoveListeners.RemoveAt(queuedRemoveListeners.Count - 1);
            AbstractEventHandler eventHandler;
            if (Instance.eventListeners.TryGetValue(queuedListener.eventType, out eventHandler))
            {
                eventHandler.RemoveListener(queuedListener.internalDelegate, queuedListener.onEvent, queuedListener.args);
            }
        }

        while (queuedListeners.Count > 0)
        {
            QueuedListener queuedListener = queuedListeners[0];
            queuedListeners.RemoveAt(0);
            ProcessQueuedListener(queuedListener);
        }
    }