Hello, my program is 2d, and here is the scene. I have a gameobject, and when I click, I calculate the direction vector from my player gameobject to my mouse click position. Then I turn that into a ray, with origin at my player, and then I make a new “projectile” gameobject that follows that ray by use ray.getPoint(Position) and I increment that position to make it move.
My issue is: If i click closer to my player gameobject, the new projectile will go slower than if I click farther away from the player gameobject. Wondering why that is.
My code is roughly as follows:
//In player Controller
if (Input.GetMouseButtonDown(0))
{
GameObject throwingProjectile = Instantiate(throwingEquip, transform.position, transform.rotation);
Vector3 mouseVector = camera.ScreenToWorldPoint(Input.mousePosition);
Vector3 direction = mouseVector - transform.position;
Ray ray = new Ray(transform.position, direction);
throwingProjectile.GetComponent<ProjectileController>().setTarget(ray, mouseVector);
}
//In projectile Controller
public void setTarget(Ray mouseRay, Vector3 mouseVector)
{
ray = mouseRay;
float angle = Mathf.Atan2(transform.position.y - mouseVector.y, transform.position.x - mouseVector.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.Euler(new Vector3(0f, 0f, angle));
}
private void FixedUpdate()
{
transform.position = new Vector3(ray.GetPoint(position).x, ray.GetPoint(position).y, 0);
position += 1f;
}
Thanks in advance!