shooting object from from multiple locations

hello everyone , I am new to unity 2d and I have been following the tutorial about angry bird style game
and I wanted to edit some gameplay of the game for my own project here is my problem when we shoot the object from the catapult I want to catch the object from a different location and then shoot the object again from that location
I am working on a top-down 2d game that is like that shooting the object and catches it and then shoots again.
here is my code most of it is like the tutorial and I kind of ruined the editing

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class firing : MonoBehaviour {

public float MaxStretch = 3f;
public LineRenderer CatapultFront;
public LineRenderer CatapultBack;
public Transform catapult;

private bool ClickedOn;
private Rigidbody2D Rigid;
private SpringJoint2D spring;
private Ray RayToMouse;
private Ray LeftCatapultToProjectile;
private Vector2 PreVelocity;
private float CircleRadius;
private float maxS;
private bool entering;

private void Awake()
    Rigid = GetComponent<Rigidbody2D>();
    spring = GetComponent<SpringJoint2D>();


void Start () {
    catapult = spring.connectedBody.transform;
    RayToMouse = new Ray(catapult.transform.position,;
    LeftCatapultToProjectile = new Ray(CatapultFront.transform.position,;
        maxS = MaxStretch * MaxStretch;
    // PreVelocity = Rigid.velocity;
    CircleCollider2D circle = GetComponent<Collider2D>() as CircleCollider2D;
    CircleRadius = circle.radius;
  Rigid.gravityScale = 0.0f;


// Update is called once per frame
void Update()

    if (ClickedOn)
        if (!Rigid.isKinematic  &&  PreVelocity.sqrMagnitude > Rigid.velocity.sqrMagnitude) {
            // Debug.Log(Rigid.isKinematic);
            spring.enabled = false;
                Rigid.velocity = PreVelocity;

        if (!ClickedOn)
          PreVelocity = Rigid.velocity;

            CatapultFront.enabled = false;
            CatapultBack.enabled = false;


        if(spring.enabled ==false && entering)




private void OnMouseDown()
        spring.enabled = false;
        ClickedOn = true;

private void OnMouseUp()
        //  Debug.Log("!clicked");
        spring.enabled = true;
        Rigid.isKinematic = false;
        ClickedOn = false;

protected void LineRendereSetup()
    CatapultFront.SetPosition(0, CatapultFront.transform.position);
    CatapultBack.SetPosition(0, CatapultBack.transform.position);

    CatapultFront.sortingLayerName = "foreground";
    CatapultBack.sortingLayerName = "foreground";

    CatapultFront.sortingOrder = 3;
    CatapultBack.sortingOrder = 1;
   // Debug.Log("band");
void Dragging()
 //   Touch touch = Input.GetTouch(0);
    Vector3 mouseworldpoint = Camera.main.ScreenToWorldPoint(Input.mousePosition);
    Vector2 CatapultToMouse = mouseworldpoint - catapult.position;
    if(CatapultToMouse.sqrMagnitude > maxS)
        RayToMouse.direction = CatapultToMouse;
        mouseworldpoint = RayToMouse.GetPoint(MaxStretch);
       // Debug.Log("Salam");
    mouseworldpoint.z = 0f;
    transform.position = mouseworldpoint;

private void LineRendererUpdate()
// Debug.Log(“render”);
Vector2 CatapultToProjectile = transform.position - CatapultFront.transform.position;
LeftCatapultToProjectile.direction = CatapultToProjectile;
Vector2 HoldPoint = LeftCatapultToProjectile.GetPoint(CatapultToProjectile.magnitude +CircleRadius);
CatapultBack.SetPosition(1, HoldPoint);
private void OnTriggerEnter2D(Collider2D collision)
catapult.position = collision.transform.position;
spring.connectedBody = null;
spring.connectedBody = collision.GetComponent();
// ClickedOn = true;




Without trying to read the mess of code you posted, i’d say you need to make an object that has a radial collider. When your projectile enters the collider, bring it to the ejection point (center of object, launch pad, whatever…), then launch again in wanted direction.

That requires a new object and a new script.