protected void AddInteractable(GameObject other) { IInteractable interactable = other.GetComponent <IInteractable>(); if (AddInteractable(interactable)) { InteractableAddedEvent?.Invoke(this, new InteractableEventArgs { Interactable = interactable }); } }
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 }); } }
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 }); } }