private void OnTriggerEnter2D(Collider2D collision) { if (usable && collision.CompareTag("Player")) { InteractableObjectSprite ios = GetComponent <InteractableObjectSprite>(); InteractionsManager.Instance.ResolveInteraction(ios.id, gameObject); } }
void Update() { interactableObject = null; mAnimator.SetBool("headbutt", false); if (!InteractionsEnabled) { return; } if (carryingObject) { objectToCarry.transform.position = ObjectTakenPosition.transform.position; if (Input.GetKeyDown(KeyCode.R)) { ThrowObject(); } } else { bool positive = interactionsCollider.transform.eulerAngles.y < 90.0f; Collider2D collider = Physics2D.OverlapBox( interactionsCollider.transform.position + new Vector3( interactionsCollider.offset.x * (positive ? 1 : -1), interactionsCollider.offset.y, 0.0f), interactionsCollider.size, 0.0f, interactableLayer); if (collider) { if (lastCollider != collider && lastCollider != null) { lastCollider.gameObject.GetComponent <InteractableObjectSprite>().ShowInteractionHelper(false); } lastCollider = collider; interactableObject = collider.gameObject; if (lastCollider != null) { interactableObject.GetComponent <InteractableObjectSprite>().ShowInteractionHelper(true); } } else { if (lastCollider != null) { lastCollider.gameObject.GetComponent <InteractableObjectSprite>().ShowInteractionHelper(false); lastCollider = null; } } } if (interactableObject && Input.GetKeyDown(KeyCode.E)) { InteractableObjectSprite interactable = interactableObject.GetComponent <InteractableObjectSprite>(); InteractionsManager.Instance.ResolveInteraction(interactable.id, interactableObject); } }