public void ReturnProjectile(GravityGunProjectileController projectile, Type type)
    {
        _projectilePools[type].Add(projectile);
        projectile.transform.rotation = Quaternion.identity;
        projectile.GetComponent <GravityObjectRigidBody>().ClearAllVelocities();
        projectile.GetComponent <GravityObjectRigidBody>().ChangeGravityDirection(Vector2.zero);
        projectile.gameObject.SetActive(false);
        var magnetZone = projectile.GetComponentInChildren <MagnetZoneController>();

        if (magnetZone)
        {
            magnetZone.ClearTrackingData();
        }
    }
    public void SpawnProjectile(Vector2 dir, float secondsUntilDestroy, ProjectileControllerType type)
    {
        float xValue = dir.x;
        float yVlaue = dir.y;
        float angle  = Mathf.Rad2Deg * Mathf.Atan2(dir.y, dir.x);
        GravityGunProjectileController projectileClone = ProjectilePool.Instance.GetProjectile(ProjectilePool.ConvertProjectileControllerTypeToType(type));

        projectileClone.transform.position = Reticle.transform.position;
        projectileClone.Owner = this;
        projectileClone.SecondsUntilDestroy = secondsUntilDestroy;
        ChangeGORBGravityDirection(projectileClone.GetComponent <GravityObjectRigidBody>(), dir);
        projectileClone.GetComponent <GravityObjectRigidBody>().ChangeGravityScale(ShootSpeed);
        projectileClone.GetComponent <GravityObjectRigidBody>().ClearAllVelocities();
        projectileClone.transform.rotation = Quaternion.identity;
        projectileClone.transform.Rotate(0, 0, angle);
        projectileClone.OnShot();
    }