//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(); }
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 }