- Home /
gameObject.BroadcastMessage error
My health system doesn't work. It is supposed to deal damage to the player every .5 seconds that the enemy "colliding" with the player (using distance to determine if they are close together for simplicity).
Problem is that I'm getting a NullReferenceException (Object reference not set to an instance of an object MobBehaviour.Attack () (at Assets/Scripts/MobBehaviour.js:35)).
var health : int = 25;
var damage : int = 10;
var attackSpeed : float = 0.5;
var gravity : float = 30.0;
var target : GameObject;
private var moveDirection : Vector3 = Vector3.zero;
private var nextAttack : float = 0.0;
function Update () {
var controller : CharacterController = GetComponent(CharacterController);
if(Vector3.Distance(transform.position, target.transform.position) <= 1.1){
Attack();
}
// Apply gravity
moveDirection.y -= gravity * Time.deltaTime;
controller.Move(moveDirection * Time.deltaTime);
}
function ApplyDamage (damage : int) {
health -= damage;
if(health <= 0) {
Destroy(gameObject);
}
}
function Attack(){
if(Time.time > nextAttack){
nextAttack = Time.time + attackSpeed;
target.BroadcastMessage("ApplyDamage", damage, SendMessageOptions.DontRequireReciever);
}
}
I have used gameObject.BroadcastMessage before without any problems, but this time I just can't get it work for some reason.
There aren't 35 lines in that script :) Can you tell me which line on the posted script has an error?
Answer by fafase · Jun 20, 2012 at 08:52 AM
target.BroadcastMessage("ApplyDamage", damage, SendMessageOptions.DontRequireReciever);
You spelt Receiver wrong.
target.BroadcastMessage("ApplyDamage", damage, SendMessageOptions.DontRequireReceiver);
Also have you dragged the target object in the slot? Just in case...
Ah, thank you. I guess that's what happens when you stay up working till 4.00 am
Your answer
Follow this Question
Related Questions
Health Regeneration 2 Answers
Universal Damage Sytem 2 Answers
Enemy Health, Player Damage 0 Answers
Damage/Health problem 2 Answers
Player won't take damage... 1 Answer