- Home /
Error in running Start() when multiple instances in scene
Hi there,
I know I'm doing something obviously wrong but I can't seem to find the right words to search for.....so apologies for the n00bism.
I have a class with a simple start function that takes the text in a UI object I created and checks a static array in the Game Data object to pull some additional info.
void Start(){
UpgradeTitle = this.transform.FindChild("UpgradeTitle").GetComponent<Text>();
Debug.Log (UpgradeTitle.text);
for (int x = 0;x < GameConstants.DataList.Length;x++){
if(UpgradeTitle.text == GameConstants.DataList[x].UpgradeName){
ArrayValue = x;
x = GameConstants.DataList.Length;
}
}
Debug.Log (ArrayValue);
Now - when I run this for a single instance of the object (Where I've overwritten the text in the UpgradeTitle UI text box with "Inventory") it works fine. my Debug Reads
Inventory
2
OK.....seems like I've got it working. I now duplicate the object (It's still not connected to a Prefab) and change the text in UpgradeTitle to "Replenish".
The Debug runs the same for the first GameObject (Upgrade1). Excellent! However, for the other gameObject (Upgrade2) the first Debug fires OK and it returns "Replenish". However, I now get an error message saying Object reference not set to an instance of an object (referencing the if function) and the second Debug doesn't fire.
Neither UpgradeTitle nor ArrayValue value are public objects....
Why will it work for the first object but not the second? What am I doing wrong?
Your answer

Follow this Question
Related Questions
Count multiple objects! 3 Answers
overlapping of enemy 2 Answers
Multi-gun Aiming System 1 Answer
Only getting one game object instead of multiple game objects in start of the program 0 Answers
How to keep objects disabled after reloading the scene? 2 Answers