Here is my code:
m_ShotCopy = Instantiate(m_Shot, transform.position, Quaternion.Euler(new Vector3(0, 0, 0))) as GameObject;
Rigidbody2D rigidBody = m_ShotCopy.GetComponent<Rigidbody2D>();
Vector3 m_ShootDirection;
m_ShootDirection = Input.mousePosition;
m_ShootDirection.z = 0.0f;
m_ShootDirection = Camera.main.ScreenToWorldPoint(m_ShootDirection);
m_ShootDirection = m_ShootDirection - transform.position;
//rigidBody.AddForce(new Vector2(m_ShootDirection.x * m_TurnSpeed, m_ShootDirection.y * m_TurnSpeed)); THIS OR VELOCITY
rigidBody.velocity = Vector3.MoveTowards(transform.position, m_ShootDirection, m_TurnSpeed);
DestroyShotCopy();
test.text = "x " + (p_rotation.m_MousePositionX).ToString();
test1.text = "y " + (p_rotation.m_MousePositionY).ToString();
m_Fired = true;
My player shoots from its position projectiles to the direction of the mouse position.
The problem is, the more far away the mouseposition from the player position is the faster the projectile gets. I want it just to shoot in mouse direction with always the same speed.
Feel free to correct my code or make a better one. The “AddForce” is commented. You can “un-commment” it and use it instead of “velocity”. Both works fine, they just contain the same problem.