- Home /
Damage Receiver add Score
i try to make fps game from fps tutorial i want to add score when i destroy a game object use my machine gun or rocket launcher....
here the damage receiver script:
var hitPoints = 100.0;
var detonationDelay = 0.0; var explosion : Transform; var deadReplacement : Rigidbody; var score = 100;
function ApplyDamage (damage : float) { // We already have less than 0 hitpoints, maybe we got killed already? if (hitPoints <= 0.0) return;
hitPoints -= damage; if (hitPoints <= 0.0) { //add score BroadcastMessage("AddScore", score, SendMessageOptions.DontRequireReceiver); // Start emitting particles var emitter : ParticleEmitter = GetComponentInChildren(ParticleEmitter); if (emitter) emitter.emit = true;
Invoke("DelayedDetonate", detonationDelay);
}
}
function DelayedDetonate () { BroadcastMessage ("Detonate"); }
function Detonate () {
// Destroy ourselves Destroy(gameObject);
// Create the explosion if (explosion) Instantiate (explosion, transform.position, transform.rotation);
// If we have a dead barrel then replace ourselves with it! if (deadReplacement) { var dead : Rigidbody = Instantiate(deadReplacement, transform.position, transform.rotation);
// For better effect we assign the same velocity to the exploded barrel
dead.rigidbody.velocity = rigidbody.velocity;
dead.angularVelocity = rigidbody.angularVelocity;
}
// If there is a particle emitter stop emitting and detach so it doesnt get destroyed // right away var emitter : ParticleEmitter = GetComponentInChildren(ParticleEmitter); if (emitter) { emitter.emit = false; emitter.transform.parent = null; }
}
i want to show score on my gui but it don't work
here my score script:
var playerScore = 0;
function OnGUI () { GUI.Button (Rect (10, 10, 100, 20), score.ToString()); }
//So that you can print your score, etc.
function AddPoints(score : int) { playerScore += score; }
i use BroadcasMessage to store score value to score script
anybody can help???
Can you elaborate on what you mean by it doesnt work? Does it throw an error? Just show 0? What exactly is the issue?
Answer by Ejlersen · Jan 02, 2011 at 10:59 AM
If its added to playerScore
, then why do you try to write out score
? :)
Edit:
Because my joke of an answer/question may have confused some. Here is what I mean:
var playerScore = 0;
function OnGUI() { // Change "score" to "playerScore GUI.Button(Rect(10, 10, 100, 20), playerScore.ToString()); }
function AddPoints(score : int) { playerScore += score; }
That obviously wouldn't work because he currently always passes a value of 100 to the score parameter in his AddPoints method.
playerScore is what he needs to show, and is the variable that will keep track of the total score.
Yes, like I said :) Its a question of why he's trying to show "score", when he should show "playerScore".
Your answer
![](https://koobas.hobune.stream/wayback/20220613093653im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
creating score point for 3 objects 1 Answer
After I initially add score it keeps adding. 2 Answers
Simple Point system 3 Answers
Point system help! 2 Answers
Point system, something wrong 1 Answer