- Home /
get component screws with the game.
var score : Deathmatchinfo = gameObject.GetComponent(Deathmatchinfo);
This line in a script makes unity sad and gives me tons of errors in the console. I have been trying to fix it and nothing i'm doing is working.
this is the full script.
var spawnpoints : GameObject [];
var isalive : boolean = true;
var playerprefab : GameObject;
var player : GameObject;
var score : Deathmatchinfo = gameObject.GetComponent(Deathmatchinfo);
function Update(){
checkifalive();
}
function checkifalive () {
if(player.GetComponent(playerhealth).HP < 1){
isalive = false;
if(isalive == false){
respawn();
}
}
}
function respawn (){
var index : int = Random.Range(1,spawnpoints.length);
var thespawn : GameObject = spawnpoints[index];
var instance : GameObject = Instantiate(playerprefab, thespawn.transform.position, transform.rotation);
player = instance;
score.player1 = score.player1 + 1;
isalive = true;
}
the score variable is a separate script with an int value, the int being 'player1' at line 46. Again the score variable is throwing up errors that crash the game and I don't know how to fix it without causing more errors. this is the error that comes up.
UnityException: You are not allowed to call this function when declaring a variable. Move it to the line after without a variable declaration. If you are using C# don't use this function in the constructor or field initializers, Instead move initialization to the Awake or Start function. deathmatchHealth1..ctor () (at Assets/scripts/Deathmatch/deathmatchHealth1.js:10)
Answer by Kiloblargh · May 04, 2014 at 09:20 PM
That's one of the most clear and helpful error messages Unity will ever give you. Did you try taking its advice?
var score : Deathmatchinfo;
function Awake () {
score = gameObject.GetComponent (Deathmatchinfo);
}
I'm new to Coding in general, Didn't think to do it that way :P I saw how it said to put it in start or awake, but wasn't sure how to do that. Thanks for the help.
Answer by nmcconnell · May 04, 2014 at 11:11 PM
Have you tried doing what the error message suggests, and moving the assignment into the Start function?
var score : Deathmatchinfo;
function Start()
{
score = gameObject.GetComponent(Deathmatchinfo);
}