Any reason why global vars are null within certain functions?
Hi, I'm having some trouble with one of my functions. On my game manager script i have a global array of GameObjects and an int:
var word:GameObject[]; //an array of GameObjects
var wordLength:int; //this is defined later and used for word.Length
And then on the same script I have written a function:
function MyFunction(panelID:int, wordL:int){
for(var p = 0; p < wordL; p++){
if(word[p].GetComponent(PanelScript).matState == panelID){
switch(panelID){
case 1:
word[p].GetComponent(PanelScript).StateChange(7);
break;
case 2:
word[p].GetComponent(PanelScript).StateChange(0);
break;
default:
print("DEFAULT");
break;
}
}
}
}
I am calling this function from a different script that is attached to each one of word[]'s GameObjects with this line:
manager.GetComponent(ManagerScript).MyFunction(matState, arrSize);
arrSize on this script is an int equal to wordLength on the manager script. I would simply use wordLength within the function to loop thru the array, but for some reason it returns zero, causing the for loop to end before it starts.
So I passed in arrSize which holds the correct value in the function, but when I try to loop through word[], I get the "index out of range error" because it turns out word.Length also returns zero. At runtime word[] always shows the correct values in the inspector, and I have accessed it successfully in other functions, so why does MyFunction read it as zero?
Any help is greatly appreciated!