void Update() { if (_interactable != null && _interactor != null) { foreach (KeyCode kc in _interactable.InteractOptions(_interactor).Keys) { if (Input.GetKeyDown(kc) || (joystickMap.ContainsKey(kc) && Input.GetKeyDown(joystickMap[kc]))) { Interactable.Interactions i = _interactable.InteractOptions(_interactor)[kc]; _interactor.Interact(i, _interactable); _interactable.Interact(_interactor, i); Hide(); } } if (_interactable != null) { RectTransform canvasRect = _choiceBox.canvas.GetComponent <RectTransform>(); Vector3 viewPos = Camera.main.WorldToViewportPoint(_interactable.transform.position); GetComponent <RectTransform>().anchoredPosition = new Vector2(viewPos.x * canvasRect.sizeDelta.x, viewPos.y * canvasRect.sizeDelta.y); } } }
public void Interact(Interactable.Interactions code, Interactable interactable) { if (code == Interactable.Interactions.Pickup) { _pickedUpInteractable = interactable; interactable.transform.parent = transform; interactable.transform.localPosition = Vector2.zero; } else if (code == Interactable.Interactions.Drop) { if (_pickedUpInteractable != null) { Drop(); } } }