Ejemplo n.º 1
0
        /// <summary>
        /// Stop listening to events
        /// </summary>
        /// <typeparam name="VncEvent">Type of event to unlisten to</typeparam>
        /// <param name="listener">Remove itself as event listener</param>
        public static void Unlisten <VncEvent>(this IVncEventListener <VncEvent> listener) where VncEvent : struct
        {
            List <IVncEventListenerGeneric> _eventList;

            if (_events.TryGetValue(typeof(VncEvent), out _eventList))
            {
                _eventList.Remove(listener);
            }
            else
            {
                throw new UnityException("Cannot unlisten this listener. It doesn't exist.");
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Start listening to events
        /// </summary>
        /// <typeparam name="VncEvent">Type of event to listen to</typeparam>
        /// <param name="listener">Register itself as event listener</param>
        public static void Listen <VncEvent>(this IVncEventListener <VncEvent> listener) where VncEvent : struct
        {
            Type eType = typeof(VncEvent);
            List <IVncEventListenerGeneric> _eventList;

            if (!_events.ContainsKey(eType))
            {
                _eventList = new List <IVncEventListenerGeneric>();
                _events.Add(eType, _eventList);
            }
            else
            {
                _eventList = _events[eType];
            }

            if (!_eventList.Contains(listener))
            {
                _eventList.Add(listener);
            }
        }