Global variables are null within 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!
I think you have something else going wrong here. If word.Length was indeed 0, then you would not get an "out of range" error.
The program compiled, but I would get the error once the function called. From my understanding, trying to access the 4th (for example) element of an array with Length 0 would produce this error. It seems to me that word[] is nullified when the function is called, but only within the function.
I have printed a global string from this function as well, and it returned "". Is there any reason why this function would read all global var's as null?
Your answer
Follow this Question
Related Questions
Any reason why global vars are null within certain functions? 0 Answers
particle system going wild 1 Answer
function being called twice at the same time causing an error. 1 Answer
Invoke function it is called only once 1 Answer
How do you create a generic function for custom types that are inherited from a generic class? C# 1 Answer