public void PickUp() { Collider[] items = Physics.OverlapSphere(rightHand.position, 0.69f, 1 << 13); for (int i = 0; i < items.Length; i++) { Pickuppable stuff = items[i].GetComponent <Pickuppable>(); if (stuff != null) { //Debug.Log("Happened!"); stuff.PickUp(states); } } }
private void OnTriggerEnter2D(Collider2D other) { var interactableComponent = other.GetComponent <Interactable>(); if (interactableComponent) { interactableComponent.ApproachPlayer(); if (_closestInteractableObject == null) { _closestInteractableObject = interactableComponent; _playerActions.onInteract += _closestInteractableObject.Interact; foreach (var v in _playerActions.onInteract.GetInvocationList()) { print("Invocation List: " + v); } } } if (canPickup) { var pickuppableComponent = other.GetComponent <Pickuppable>(); if (pickuppableComponent) { pickuppableComponent.ApproachPlayer(); if (_closestPickuppableObject == null) { _closestPickuppableObject = pickuppableComponent; _playerActions.onPickup += _closestPickuppableObject.Pickup; foreach (var v in _playerActions.onPickup.GetInvocationList()) { print("Invocation List: " + v); } } } } }
private void PickupObject() { print("Pickup object"); if (_currentTool != null) { print("Dropping an object now"); _currentTool.transform.SetParent(null, true); _playerActions.onPickup -= _currentTool.Drop; _playerActions.onPickup += _currentTool.Pickup; foreach (var v in _playerActions.onPickup.GetInvocationList()) { print("Invocation List: " + v); } } if (_closestPickuppableObject != null) { if (_closestPickuppableObject.canPickup == true) { print("Holding an object now"); Transform pickupTransform = _closestPickuppableObject.transform; pickupTransform.SetParent(holdingToolParent, false); pickupTransform.localPosition = Vector2.zero; _currentTool = _closestPickuppableObject; _playerActions.onPickup -= _currentTool.Pickup; _playerActions.onPickup += _currentTool.Drop; foreach (var v in _playerActions.onPickup.GetInvocationList()) { print("Invocation List: " + v); } } } }
private void OnTriggerExit2D(Collider2D other) { var interactableComponent = other.GetComponent <Interactable>(); if (interactableComponent) { interactableComponent.RetreatPlayer(); if (_closestInteractableObject == interactableComponent) { _playerActions.onInteract -= _closestInteractableObject.Interact; _closestInteractableObject = null; foreach (var v in _playerActions.onInteract.GetInvocationList()) { print("Invocation List: " + v); } } } var pickuppableComponent = other.GetComponent <Pickuppable>(); if (pickuppableComponent) { pickuppableComponent.RetreatPlayer(); if (_closestPickuppableObject == pickuppableComponent) { _playerActions.onPickup -= _closestPickuppableObject.Pickup; _closestPickuppableObject = null; foreach (var v in _playerActions.onPickup.GetInvocationList()) { print("Invocation List: " + v); } } } }