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