- Home /
Score/point counter system
I have scattered targets placed throughout my sandbox fps-like game. These targets each have the following code equipped:
var hitPoints = 100.0; var detonationDelay = 0.0; var explosion : Transform; var deadReplacement : Rigidbody; 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) { // 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; } } // We require the barrel to be a rigidbody, so that it can do nice physics @script RequireComponent (Rigidbody)
For each target destroyed I would like a set amount of points to be added to a counter/score system...
Any suggestions to how I can execute this efficiently? Also how would I associate the concept to creation of new GUIskin??
Thanks.
Answer by FLASHDENMARK · May 14, 2011 at 07:05 PM
PointManager: (script 1)
attatch this script to a guiText
static var points = 0.0; // A static var can be acessed form other scripts.
function Update () { //assuming that you want the score on a guiText.
guiText.text = "" + points; }
//New script:
var pointsToAdd = 10; // You will add 10 points for each kill.
function Update () { //When the enemy is dead. //we add points to the script above using the name of the script(PointManager) //and the variable name(points) PointManager.points += pointsToAdd; }
Won't compile :[
Assets/Code/New script.js(4,1): BCE0044: expecting (, found '{' Assets/Code/New script.js(9,1): BCE0044: expecting EOF, found '}'
Second script^
Ah it compiles now, cheers. Only when I shoot target the number '0' doesn't change...
Do I need to attach these codes specifically to something??
Okay attached Point$$anonymous$$anager to GUIText and the other to Target... now for some reason when I start playing the score counter continuously keeps going up, which it will stop once I shoot a target.. help D:
Your answer
![](https://koobas.hobune.stream/wayback/20220613134219im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Score counter out of control, help needed. 1 Answer
Score Counter Help 2 Answers
Make a custom score counter in unity with c# 1 Answer
GUI Text Score counter 3 Answers
GUI.box (Score counter) doesn't appear when game is on play. 1 Answer