- Home /
Collision Damage, Hit points and Instantiate
HI everyone,
I am having a bit of a hard time trying to understand what I am doing here :) I want to apply damage to a gameObject with the weapon. This part is done. I also want this game object to receive damage if it falls. Say, I shoot it, I take 10% of its health, it falls, and the fall takes another percent of its health. Based on the fps tutorial; I have to say that my game object has a healthy prefab, a damaged prefab 1 (damage state) and a damaged prefab 2(completely destroyed); Everything works great up until I have a few more objects up close and this results in instantiating madness (so many instances that the engine hangs) Here's my script:
var hitPoints = 100.0; var detonationDelay = 0.0; var deadReplacement : GameObject; var damage = 10;
function OnCollisionEnter(collision : Collision) { if (collision.relativeVelocity.magnitude > 5)
hitPoints -= damage; if (hitPoints <= 10) { Invoke("DelayedDetonate", detonationDelay); } }
function ApplyDamage (damage : float) {
if (hitPoints <= 0.0) return;
hitPoints -= damage; if (hitPoints <= 0.0) {
var emitter : ParticleEmitter = GetComponentInChildren(ParticleEmitter);
if (emitter)
emitter.emit = true;
Invoke("DelayedDetonate", detonationDelay);
} }
function DelayedDetonate () { BroadcastMessage ("Detonate");
}
function Detonate () {
Destroy(gameObject); if (deadReplacement) { var dead : GameObject = Instantiate(deadReplacement, transform.position, transform.rotation);
}
}
I am doing something wrong and I have no clue where to look, any help is greatly appreciated.
Answer by DaveA · Jan 13, 2011 at 11:02 PM
Perhaps when an object is destroyed, it collides with other such damageable objects, causing a chain-reaction of destruction? You could put a check for this at the top of OnCollisionEnter to check the collider (name, type, tag, whatever) to see if it's the same type, and not react to itself-sorta.
Your answer
Follow this Question
Related Questions
BoxCollider2D failling verification when Instantiate (Fixed, Cause: big derp) 1 Answer
Help with my On_Bullet please 1 Answer
[SOLVED] Destroy instantiated object prefab on collision 1 Answer
Instantiating random prefabs when the player passes through a trigger 1 Answer
Collision Not Responding 1 Answer