- Home /
Projectile instantiation positioning is off.
I made some weapons for my FPS game. A Rocket Launcher and a Machine gun. When I fire them the Rocket/Bullet shoots forward but not out of the barrel of the weapons, it shoots out above. How can I fix this?
Screenshot:
JavaScript:
var projectile : Rigidbody;
var initialSpeed = 50.0;
var reloadTime = 0.5;
var ammoCount = 100.0;
private var lastShot = -10.0;
function Fire ()
{
// Did the time exceed the reload time?
if (Time.time > reloadTime + lastShot && ammoCount > 0)
{
// create a new projectile, use the same position and rotation as the Launcher.
var instantiatedProjectile : Rigidbody = Instantiate (projectile,
transform.position, transform.rotation);
// Give it an initial forward velocity. The direction is along the z-axis of
// the missile launcher's transform.
instantiatedProjectile.velocity = transform.TransformDirection(
Vector3 (0, 0, initialSpeed));
// Ignore collisions between the missile and the character controller
Physics.IgnoreCollision(instantiatedProjectile.collider, transform.root.collider);
lastShot = Time.time;
ammoCount--;
}
}
Projectile JavaScript:
var explosion : GameObject;
function OnCollisionEnter( collision : Collision )
{
var contact : ContactPoint = collision.contacts[0];
var rotation = Quaternion.FromToRotation( Vector3.up, contact.normal );
var instantiatedExplosion : GameObject = Instantiate(
explosion, contact.point, rotation );
Destroy( gameObject );
}
Please can some one tell me if any of these scrips say where the 'Instantiate' position is, and how I can change that?
Thank you,
Do not open duplicates of the same question. If you're not getting answers, it's likely because of how you've posed your question: format it and you won't make people's eyes bleed.
Answer by FPS27 · Jul 19, 2011 at 07:55 PM
I figured out the problem myself. I just needed to move the Launcher/MachineGun Game Object to the correct position.
Answer by Chris D · Jul 15, 2011 at 10:06 PM
Somehow you're instantiating from the wrong place. Check out where the instantiation is called from and see what it is using as a basis to tell your bullet to "spawn from this position".
Answer by S33HUNT · Jul 15, 2011 at 06:22 PM
... I think you need to divulge more info for a good answer. The script you're using would help. maybe a screenshot of the hierarchy to see how you're structuring your objects.
Is it an issue with local versus global positioning perhaps?