private void UpdatePlayerToActive(PlayerInteractor playerInteractor, InRangeListener active) { var playerIndex = playerInteractor.Player.PlayerIndex; if (!_playerToActive.ContainsKey(playerInteractor)) { _playerToActive.Add(playerInteractor, active); if (active != null) { active.NotifyInRange(playerIndex); } return; } _playerToActive[playerInteractor]?.NotifyOutOfRange(playerIndex); _playerToActive[playerInteractor] = active; if (active == null) { return; } active.NotifyInRange(playerIndex); }
private void UpdateActiveInteractable() { var closest = GetClosestInteractable(_inRange, transform); if (closest != null) { _active = closest.GetComponent <InRangeListener>(); _lineRenderer.SetPosition(0, transform.position); _lineRenderer.SetPosition(1, closest.transform.position); _lineRenderer.enabled = true; } else { _active = null; _lineRenderer.enabled = false; } InteractionController.Instance.NotifyActiveChanged(this, _active); }
public void NotifyActiveChanged(PlayerInteractor playerInteractor, InRangeListener active) { UpdatePlayerToActive(playerInteractor, active); }
private void Awake() { _inventory = GetComponent <Inventory>(); _inRangeListener = GetComponent <InRangeListener>(); _useListener = GetComponent <UseListener>(); }