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();
    }