示例#1
0
        protected void AddInteractable(GameObject other)
        {
            IInteractable interactable = other.GetComponent <IInteractable>();

            if (AddInteractable(interactable))
            {
                InteractableAddedEvent?.Invoke(this, new InteractableEventArgs {
                    Interactable = interactable
                });
            }
        }
示例#2
0
        protected void AddInteractable(GameObject other)
        {
            IInteractable interactable = other.GetComponent <IInteractable>();

            if (null == interactable || !interactable.CanInteract)
            {
                return;
            }

            var interactables = _interactables.GetOrAdd(interactable.GetType());

            if (interactables.Add(interactable))
            {
                InteractableAddedEvent?.Invoke(this, new InteractableEventArgs {
                    Interactable = interactable
                });
            }
        }
示例#3
0
        private void OnTriggerEnter2D(Collider2D other)
        {
            IInteractable interactable = other.GetComponent <IInteractable>();

            if (null == interactable || !interactable.CanInteract)
            {
                return;
            }

            var interactables = _interactables.GetOrAdd(interactable.GetType());

            if (interactables.Add(interactable))
            {
                InteractableAddedEvent?.Invoke(this, new InteractableEventArgs {
                    Interactable = interactable
                });
            }
        }