protected void Start() { if (AttachedInteractable != null) { _interactable = AttachedInteractable.GetComponent <IInteractableInterface>(); } if (_interactable == null) { Debug.LogError("Failed to retrieve attached interactable!"); } }
private void UpdateInteractionStatus() { var mostDesirableInteractable = GetMostDesirableInteractable(); var canStillInteract = mostDesirableInteractable != null; if (mostDesirableInteractable != ActiveInteractable) { ActiveInteractable = mostDesirableInteractable; UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(gameObject, new ActiveInteractableUpdatedMessage(ActiveInteractable)); } if (canStillInteract != _interactionPossible) { _interactionPossible = canStillInteract; UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(gameObject, new InteractionStatusUpdatedMessage(_interactionPossible)); } }
public ActiveInteractableUpdatedUIMessage(IInteractableInterface inUpdatedInteractable) { UpdatedInteractable = inUpdatedInteractable; }
public void RemoveActiveInteractable(IInteractableInterface inInteractableInterface) { _possibleActiveInteractables.Remove(inInteractableInterface); }
// IInteractionInterface public void AddActiveInteractable(IInteractableInterface inInteractableInterface) { _possibleActiveInteractables.Add(inInteractableInterface); }
public void RemoveActiveInteractable(IInteractableInterface inInteractableInterface) { RemoveActiveInteractableResult = inInteractableInterface; }
public void AddActiveInteractable(IInteractableInterface inInteractableInterface) { AddActiveInteractableResult = inInteractableInterface; }