x


Ai that applies damage in collision?

Hi, I need o make a script that will make an enemy apply damage when it collides with the player, and when the player's health reaches 0, reload the level. Here's my simple script :

Player Script :

var health = 50;

function ApplyDamage (damage : int) {
     health -= damage;

     if(health <= 0) {
         Die();
     }
}
function Die () {
   Application.LoadLevel (Application.loadedLevel); 
}

Enemy Script :

var damage = 10;

function OnCollisionEnter (col : Collision) {

col.gameObject.BroadCastMessage("ApplyDamage", damage, SendMessageOptions.DontRequireReceiver);
}

I think its a simple script, when i use it on some enemies, my FPS dropped like hell with about 10 enemies on my screen ( only happened while using scripts ), and doesn't damage my player however they collide... is there any problems in this script? Can anyone tell me whats the problem?

more ▼

asked Dec 15 '10 at 05:04 AM

user-3061 (yahoo) gravatar image

user-3061 (yahoo)
126 29 29 37

(comments are locked)
10|3000 characters needed characters left

1 answer: sort voted first

What could be happening is that your enemy objects are colliding at a constant rate (a very fast rate, at that. With other colliders in the area, perhaps?).

If this is true (and I'm assuming it's doing so every frame), then those 10 enemy objects are broadcasting a message every frame.

If this were on a mobile device, you'd probably never even get the chance to load that particular level hehe.

What you could do is:

  • To check if your enemy objects are sending the message even if they don't need to, you could put a Debug.Log("Collided with: " + col.gameObject.name) inside the OnCOllisionEnter function.
  • Try putting a condition inside the OnCollisionEnter function so that the enemy object would only broadcast that message everytime it collides with a specific object (e.g. the player object). If you need help with that, just say so.
more ▼

answered Dec 15 '10 at 09:01 AM

zannghast gravatar image

zannghast
526 11 14 26

ok il try that, thanks for the reply..

Dec 16 '10 at 04:04 AM user-3061 (yahoo)
(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x3330
x2496
x959
x383
x248

asked: Dec 15 '10 at 05:04 AM

Seen: 2075 times

Last Updated: Dec 15 '10 at 05:16 AM