void OnTriggerEnter2D(Collider2D other)
        {
            if (other.gameObject.layer == 4)
            {
                inWater = true;
            }
            else if (other.gameObject.layer == 8)
            {
                canStore = true;
                CollectionContainer collectionContainer = other.GetComponent <CollectionContainer>();

                Debug.Assert(collectionContainer, "failed to acquire CollectionContainer component on from a trigger specified as a container.");
                nearbyContainer = collectionContainer;
            }
            else if (other.gameObject.layer == 9)
            {
                canCollect = true;
                Collectible collectible = other.GetComponent <Collectible>();
                Debug.Assert(collectible, "failed to acquire Collectible component on from a trigger specified as a Collectible.");
                nearbyCollectible = collectible;
            }
            if (other.gameObject.layer == 11)
            {
                if (takeDamage())
                {
                    Destroy(other.gameObject);
                }
            }
        }
 void OnTriggerExit2D(Collider2D other)
 {
     if (other.gameObject.layer == 4)
     {
         inWater     = false;
         velocity.y += gravity * Time.deltaTime;
     }
     else if (other.gameObject.layer == 8)
     {
         canStore        = false;
         nearbyContainer = null;
     }
     else if (other.gameObject.layer == 9)
     {
         canCollect        = false;
         nearbyCollectible = null;
     }
 }