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();
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?
↧