示例#1
0
    //Pickup and carry an InteractablePickup item
    public void CarryObject(InteractablePickup objectToCarry)
    {
        if (IsCarrying())
        {
            return;
        }
        carriedObject = objectToCarry;
        anim.SetTrigger("DoPickupObject");                         //pickup animation
        anim.SetBool("IsPickingUp", true);                         //special Idle and Walk animation when carrying
        carriedObject.transform.parent        = previewItemParent; //object becomes child of previewItemParent
        carriedObject.transform.localPosition = Vector3.zero;
        layerOfCarriedObject = carriedObject.GetComponentInChildren <SpriteRenderer>().sortingLayerName;
        carriedObject.GetComponentInChildren <SpriteRenderer>().sortingLayerName = "HighObjects"; //rendered above the character
        SetColliders(carriedObject.gameObject, false);                                            //disable all coliders of the carried object
        EnemyBehavior objectBehavior = carriedObject.GetComponent <EnemyBehavior>();

        if (objectBehavior != null)
        {
            objectBehavior.DisableShadow();
        }
        TipsHandler.Recycle();
    }
示例#2
0
    public void DropObject()
    {
        if (!IsCarrying())
        {
            return;
        }

        // Vérification qu'il n'y a pas d'obstacle devant
        Collider2D[] closeColliders = Physics2D.OverlapCircleAll(transform.position + (vectMovement * 0.7f), 0.55f);
        foreach (Collider2D closeCollider in closeColliders)
        {
            if (closeCollider.CompareTag("Obstacle"))
            {
                // L'objet est déposé derrière
                vectMovement = -vectMovement;
                break;
            }
        }

        anim.SetTrigger("DoDrop");  //drop animation
        Vector3 newPosition = vectMovement;

        newPosition.y -= previewItemParent.transform.localPosition.y + 0.2f;
        carriedObject.transform.localPosition = newPosition; //move it in front of character
        carriedObject.transform.parent        = null;        //no parent
        carriedObject.GetComponentInChildren <SpriteRenderer>().sortingLayerName = layerOfCarriedObject;
        if (carriedObject.GetComponentInChildren <SpriteRenderer>().sortingOrder < 200)
        {
            carriedObject.GetComponentInChildren <SpriteRenderer>().sortingOrder += 100;
        }
        SetColliders(carriedObject.gameObject, true); EnemyBehavior objectBehavior = carriedObject.GetComponent <EnemyBehavior>();
        if (objectBehavior != null)
        {
            objectBehavior.EnableShadow();
        }
        carriedObject = null;
        anim.SetBool("IsPickingUp", false);     //go back to normal animations
    }