示例#1
0
 private void OnTriggerEnter2D(Collider2D collision)
 {
     if (usable && collision.CompareTag("Player"))
     {
         InteractableObjectSprite ios = GetComponent <InteractableObjectSprite>();
         InteractionsManager.Instance.ResolveInteraction(ios.id, gameObject);
     }
 }
示例#2
0
    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);
        }
    }