- Home /
Lag on Collision from Projectile
Basically I can run around/look at all my game objects with very high FPS, but as soon as a bullet hits an object next to a bunch of other objects, it drops to <5 FPS. Also note that I can hit single objects away from other objects without a FPS drop. I turned off oncollisionenter with the objects so it's not doing anything once the bullets hit the object, and the bullets also delete themself upon impact of a rigidbody, so really, all that should happen when I shoot an object with nothing happening in it's oncollisionenter, the bullet should just delete itself, so why the FPS drop? Am I missing something?
My bullets code:
function Start()
{
yield WaitForSeconds(0.3);
Destroy( gameObject );
}
function OnCollisionEnter( collision : Collision )
{
Destroy( gameObject );
}
The gun's Fire function
function Fire()
{
if (PauseMenu.isPaused == true) {return;}
var instantiatedProjectile : Rigidbody = Instantiate(
projectile, transform.position, transform.rotation );
instantiatedProjectile.velocity =
transform.TransformDirection( Vector3( 0, 0, speed ) );
Physics.IgnoreCollision( instantiatedProjectile. collider,
transform.root.collider );
}
Answer by Koder · Apr 02, 2011 at 09:09 PM
Alright so, after hours of debugging I think I have found the problem. The objects were touching each other, and even though the objects were set to ignore each others collision, it still sprang fps problems to the table as it obviously has to check what it's colliding with before it can ignore it. Anyways, all I did was change the collider box's X, Y, and Z values to 0.99 instead of 1 and it works flawlessly. If anyone knows a better way though, please let me know.