Hi!
I’m trying to spawn projectiles using the following code:
projectileInstance = Instantiate(projectile, LaunchUnit.position + spacer, player.transform.rotation) as Rigidbody2D;
…where
projectile
is a Rigidbody2D I stored outside the scene as the original,
LaunchUnit.position + spacer
is a point in front of the char where projectiles are created,
player.transform.rotation
makes sure the projectile is pointing in the right direction.
Now this is giving me some bad, bad headache, because of the following:
Everything is cool as long as I fire slowly. The original is being cloned, flies to its fate, and gets destroyed as it hits an outside collider responsible for disposing objects that fly off screen.
Now stuff gets weird:
If I fire too rapidly or a formerly created instance isn’t destroyed yet, Instantiate() not only creates an instance from the original, but also from every single instance of “projectile” that’s already there.
Why does it do that? Am I missing something? Is my instantiation code wrong? Does the original GameObject have faulty properties? I have no clue…
Any Ideas?
PS: Ignore the crappy gfx and the buggy projectile rotation, all still WIP.
~ Incendor