- Home /
Collectible/Counter Script Error
So I was writing a script (JavaScript) for collectibles. Bronze coins, silver coins, and gold coins, each worth their own amounts. This script goes on the player. I'm getting two different errors (Well, really six)
'Gold' is not a member of 'UnityEngine.Collider'. (same for all three)
Unknown identifier: 'Silver'. (Same for all three as well)
var score = 0;
function Awake() {
Bronze = gameobject.FindWithTag("Bronze");
Silver = gameobject.FindWithTag("Silver");
Gold = gameobject.FindWithTag("Gold");
}
function OnTriggerEnter( other : Collider ) {
if (other.tag == "Bronze") {
score += 1;
Destroy(other.Bronze);
}
else if (other.tag == "Silver") {
score += 5;
Destroy(other.Silver);
}
else if (other.tag == "Gold") {
score += 15;
Destroy(other.Gold);
}
}
Thanks for any help!!! :)
Answer by Peter G · Aug 08, 2013 at 05:05 PM
One of your issues is coming these lines:
Destroy(other.Bronze);
The issues is coming from how you are trying to access the object. You need to use GetComponent.<>()
to access components attached to other components. Hence it should be:
Destroy(other.GetComponent.<Bronze>());
//The same for all three issues.
But, I have to guess that you are trying to destroy the coin. In which case you actually want to do this:
Destroy( other.gameObject );
//This destroys the whole game object instead of just the component.
And as to you other error, did you ever declare these variables?
Bronze , Silver, Gold
Thanks for the response... I actually fixed it on my own. Here is my new script...
static var score:int = 0;
var CoinSound : AudioClip;
var style : GUIStyle;
function Start() {
}
function OnTriggerEnter( other : Collider ) {
if (other.tag == "Bronze") {
score += 1;
Destroy(other.gameObject);
audio.PlayOneShot(CoinSound);
}
else if (other.tag == "Silver") {
score += 5;
Destroy(other.gameObject);
audio.PlayOneShot(CoinSound);
}
else if (other.tag == "Gold") {
score += 15;
Destroy(other.gameObject);
audio.PlayOneShot(CoinSound);
}
}
function OnGUI() {
GUI.contentColor = Color.black;
GUI.Label(Rect(25, 25, 100, 30), "Coins " + score.ToString(), style);
}
Your answer
Follow this Question
Related Questions
Detecting Webplayer's errors from Javascript 0 Answers
Raycast problems 2 Answers
What is wrong with my script? 1 Answer
BCE0044 Error - expecting :, found '=' 0 Answers
Trouble making money system 1 Answer