- Home /
Bullet shots isn't in the center
I have a a bullet prefab, rigid body added, with 0.1 mass, use gravity checked. and i have a cross hair at the center of the screen. My prob is that, it doesn't shoot in the middle of the crosshair, it's slightly shooting around a few cm to the left of the crosshair.
I also had locked the cursor, but it didn't fixed the problem. How can i shoot in the middle?Do i need to adjust the mass?the force or something?
here is my code for shooting:
var projectile: Rigidbody;
function Update () { if(Input.GetButtonDown("Fire1")) { var instantiatedProjectile:Rigidbody=Instantiate(projectile,transform.position,transform.rotation); instantiatedProjectile.velocity=transform.TransformDirection(Vector3(0,0,50)); Physics.IgnoreCollision(instantiatedProjectile.collider,transform.root.collider); }
}
Thanks!
Answer by Peter G · Feb 17, 2011 at 09:42 PM
If you are shooting your projectile out of a gun, then more than likely you have rotated the gun slightly off center with the 1st person controller. Then, since you are launching the bullet in the same direction, it will be slightly askew from the forward vector of the camera so it will fly in a slightly off direction.
The easiest way to fix that would be to reset your gun's y euler rotation or to give the projectile its direction from something else.
var instantiatedProjectile : Rigidbody = Instantiate(projectile,transform.position,transform.root.rotation);
hi, i tried replacing the var instantiatedProjectile in my code with yours, but it didn't fixed the prob. The bullet is still not in the center.did i replaced the code the wrong way?i hope there's still a way.
Answer by CommitteeWind · Mar 17, 2011 at 11:32 PM
instantiatedProjectile.velocity=transform.TransformDirection(Vector3(0,0,50));
That line of code is your problem. Try multiplying some Speed * transform.forward; Also, if you find that your rotation isn't what you're wanting then use:
Camera.main.transform.rotation
Instead of
transform.rotation
Not quite. The top line is the same as transform.forward * 50;
Answer by jamie1 · Nov 17, 2011 at 07:05 AM
hey im have a similar problem, well i have my gun and the spwan point for the bullit right in front of the nozzle (tip) and it shoots fine except if you watch the bullit travel it flys and then is almost pulled to the floor almost as if the bullet is magnetically attracted to the floor, so if i aim up woods the bullet flys straight for the ground. ANy thoughts ???
Please post a new question, ins$$anonymous$$d of posting useless copypasta 'answers' to different questions.
Your answer
Follow this Question
Related Questions
Guns don't shoot straight. 3 Answers
Bullet Collision Simulation? 2 Answers
Raycasr in my fps? 1 Answer
rigidbody' is not a member of 'UnityEngine.Object 1 Answer
Bullet Problem 0 Answers