コード例 #1
0
        protected EventSubscriber WrapEventListener(InputEventListener listener)
        {
            return((e) => {
                InputEventType eventType;
                if (e.Type == EventPress)
                {
                    eventType = InputEventType.Press;
                }
                else if (e.Type == EventRepeatPress)
                {
                    eventType = InputEventType.RepeatPress;
                }
                else if (e.Type == EventRelease)
                {
                    eventType = InputEventType.Release;
                }
                else
                {
                    return;
                }

                InputEvent evt = new InputEvent {
                    Control = (InputControl)e.Source,
                    Type = eventType
                };

                if (listener(evt.Control, evt))
                {
                    e.Consume();
                }
            });
        }
コード例 #2
0
 public static void Remove(InputEventListener item)
 {
     if (!get().list.Contains(item))
     {
         get().list.Add(item);
     }
 }
コード例 #3
0
 public void UnregisterListener(InputEventListener listener)
 {
     if (eventListeners.Contains(listener))
     {
         eventListeners.Remove(listener);
     }
 }
コード例 #4
0
 public void RegisterListener(InputEventListener listener)
 {
     if (!eventListeners.Contains(listener))
     {
         eventListeners.Add(listener);
     }
 }
コード例 #5
0
    public static void AddComponentAtRunTime(GameObject _entity, InputEvent _eventToReact,
                                             UnityAction <ScriptableObject> _onInvoke)
    {
        InputEventListener newListener = _entity.AddComponent <InputEventListener>();

        newListener.eventToReact = _eventToReact;
        _eventToReact.Register(newListener);
        newListener.onReceiveEvent = new attachedUnityEvent();
        newListener.onReceiveEvent.AddListener(_onInvoke);
    }
コード例 #6
0
    private void Awake()
    {
        if (listener == null)
        {
            Debug.Log("Missing InputEventListener reference in interactor of " + gameObject.name + ". Trying to find component.");
            listener = GetComponent <InputEventListener>();
        }
        listener.enabled = false;

        attachedInventory = GetComponent <ItemContainer>().inventory;
    }
コード例 #7
0
        public void RemoveListener(InputEventListener listener)
        {
            EventSubscriber wrapper;

            if (!_EventListeners.TryGetValue(listener, out wrapper))
            {
                return;
            }

            EventBus.Unsubscribe(this, null, wrapper);
            _EventListeners.Remove(listener);
        }
コード例 #8
0
        public InputEventSubscription AddListener(InputEventListener listener)
        {
            if (_EventListeners.ContainsKey(listener))
            {
                throw new InvalidOperationException("Listener is already subscribed to this control");
            }

            var wrapper = WrapEventListener(listener);

            EventBus.Subscribe(this, null, wrapper);
            _EventListeners[listener] = wrapper;

            return(new InputEventSubscription(this, listener));
        }
コード例 #9
0
 public void DeregisterListener(InputEventListener listener, InputCode ic)
 {
     inputs[(int)ic].DeregisterListener(listener);
 }
コード例 #10
0
 public void Unsubscribe(InputEventListener listener)
 {
     Initialize();
     listeners.Remove(listener);
 }
コード例 #11
0
 public void Subscribe(InputEventListener listener)
 {
     Initialize();
     listeners.Add(listener);
 }
コード例 #12
0
 public void AddListener(InputEventListener listener)
 {
     listeners.Add(listener);
 }
コード例 #13
0
ファイル: InputEvent.cs プロジェクト: ElKalou/Inventory
 public void DeRegister(InputEventListener listenerToRegister)
 {
     listListeners.Remove(listenerToRegister);
 }
コード例 #14
0
ファイル: InputEvent.cs プロジェクト: ElKalou/Inventory
 public void Register(InputEventListener listenerToRegister)
 {
     listListeners.Add(listenerToRegister);
 }
コード例 #15
0
 public InputEventSubscription(InputControl control, InputEventListener listener)
 {
     Control  = control;
     Listener = listener;
 }