- Home /
Trying to add 1 point to score, but it is adding 2.
I have the following two scripts, and for some reason when my item adds a "buck" to the "SCORE" it adds 2 instead of 1. I do not understand why this is happening.
My ScoreBoard script:
static var SCORE : int = 0;
function OnGUI () { GUI.Label (Rect (10, 10, 100, 20), SCORE.ToString()); }
and here is the script that should be adding one 'buck' or point:
var buck : int = 0;
function OnMouseOver () {
if (Input.GetMouseButtonDown(0))
{
Destroy (gameObject);
buck++;
ScoreBoard.SCORE = ScoreBoard.SCORE + buck;
}
}
Anyone able to tell me how this is adding 2 to SCORE instead of 1?
What happens if you hold the button down rather than simply clicking it?
Holding it down still only added one, but I've solved the problem.
A friend and I were both having the same problem (we screen share with two computers each and do the same things to eli$$anonymous$$ate specific machine errors) and we realized that the problem fixed itself after we closed Unity and reopened it. I do not know why this fixed the problem, but it did.
Answer by Random Indie · May 25, 2010 at 01:22 AM
I think I can see what's happening.
On the first click, it looks like it would add one, on the next two, then three, etc.
ie:
buck = 0
Score = 0
click 1:
buck = 1
score + buck = 0 + 1 = 1
click 2:
buck = 2
score + buck = 1 + 2 = 3
click 3:
buck = 3
score + buck = 3 + 3 = 6
Each time you use buck++ buck is incremented by 1. If you tried:
var buck : int = 1;
function OnMouseOver () {
if (Input.GetMouseButtonDown(0))
{
Destroy (gameObject);
ScoreBoard.SCORE = ScoreBoard.SCORE + buck;
}
}
Or equivalently:
function OnMouseOver () {
if (Input.GetMouseButtonDown(0))
{
Destroy (gameObject);
ScoreBoard.SCORE = ScoreBoard.SCORE + 1;
}
}
Or:
function OnMouseOver () {
if (Input.GetMouseButtonDown(0))
{
Destroy (gameObject);
ScoreBoard.SCORE++;
}
}
you should get the effect you're after.
Hope that helps, if you need clarification let me know.
Cheers
The gameobject the script is on is being deleted - it's not the problem. $$anonymous$$ost likely it was a rogue instance of the script which wasn't cleaned up by the editor
Yeah I didn't notice the delete until after Ecnylar replied. You're probably right about the script.
Your answer
Follow this Question
Related Questions
Enable and disable one button from a Static Var? 1 Answer
Help! Why doesn't this work? GUI/Static vars Help! Javascript 1 Answer
Accessing a js static var from a c# script 1 Answer
Showing score with GUI 2 Answers
Make Score Go Up At a Collision 2 Answers