public void ThrowHeldObject(Vector2 velocity) { float dropX = grabZone.transform.position.x; float side = Mathf.Sign(grabZone.transform.localPosition.x); dropX += side * heldObject.GetSize().x / 2; Vector2 dropPos = new Vector2(dropX, holdSpot.transform.position.y); if (CanMoveGrabbable(heldObject, dropPos)) { heldObject.transform.parent = null; heldObject.Drop(dropPos); if (velocity.x != 0) { Vector2 force = new Vector2(velocity.x * THROW_X_FACTOR, velocity.y + THROW_Y_SPEED); heldObject.AddForce(force); } heldObject = null; } }