예제 #1
0
    public bool CheckInteraction()
    {
        bool isInteract;

        Collider2D[] collidersHit = Physics2D.OverlapBoxAll(collider2D.bounds.center, collider2D.size, 0f, layerToCheck);

        isInteract = collidersHit != null;

        for (int i = 0; i < collidersHit.Length; i++)
        {
            IInteractive interactive = collidersHit[i].GetComponent <IInteractive>();

            if (collidersHit[i].CompareTag("Item"))
            {
                WorldItem item = collidersHit[i].GetComponent <WorldItem>();
                item.PickUp(ref inventory);
                break;
            }
            else if (interactive.ToMonoBehaviour() != null && interactive.CanInteract(null))
            {
                interactive.Interact(null);
                break;
            }
            else if (collidersHit[i].CompareTag("Merchant"))
            {
                MerchantWorld merchant = collidersHit[i].GetComponentInParent <MerchantWorld>();
                merchant.Interact();

                break;
            }
            else if (collidersHit[i].CompareTag("EndMapEvent"))
            {
                EventEndScene nextLevel = collidersHit[i].GetComponent <EventEndScene>();
                nextLevel.Activate();
                break;
            }
            else if (collidersHit[i].CompareTag("WhaleDialogue"))
            {
                dialogue dialogue = collidersHit[i].GetComponent <dialogue>();
                dialogue.InitDialog();
                break;
            }
        }

        return(isInteract);
    }
예제 #2
0
    // ----------------------------------------------------------------------- **

    public void SetMerchantWorld(MerchantWorld _merchantWorld)
    {
        merchantWorld = _merchantWorld;
    }