Пример #1
0
    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;
        }
    }