Trying to name a gameObject - loop suddenly exiting.
Hoping you can help! Comments in code. Any help appreciated.
for (int t = 0; t < atomcount; t++) {
if (element [t] == "C" && chain[t] == "A") {
atom = Instantiate (carbon, new Vector3 (x[t] / scale, y[t] / scale, z[t] / scale), Quaternion.identity) as GameObject;
atom.gameObject.name = (("fred") + atomNumber[t].ToString()); // This line exits the loop!! If I remove this line the whole thing works.
// Makes no difference whether I have a simple text name or the atomNumber[t] added
// Also no difference between using 'atom.gameObject.name' or 'atom.name'.
// Debug.Log ("This carbon is from the array " + atomNumber[t]);
//
//
} else if (element [t] == "N" && chain[t] == "A") {
atom = Instantiate (nitrogen, new Vector3 (x[t] / scale, y[t] / scale, z[t] / scale), Quaternion.identity) as GameObject;
} else if (element [t] == "O" && chain[t] == "A") {
atom = Instantiate (oxygen, new Vector3 (x[t] / scale, y[t] / scale, z[t] / scale), Quaternion.identity) as GameObject;
} else if (element [t] == "S" && chain[t] == "A") {
atom = Instantiate (sulfur, new Vector3 (x[t] / scale, y[t] / scale, z[t] / scale), Quaternion.identity) as GameObject;
}
}
Answer by toddisarockstar · Aug 21, 2016 at 11:25 PM
you should name the transform.....not the object. try this:
// name a transform reference
atom.name = ("fred" + atomNumber[t].ToString());
// name a gameobject reference
atom.transform.name = ("fred" + atomNumber[t].ToString());
That worked, thanks toddieisarockstar! I also (might be obvious to some but I am a rank beginner) had to change the declaration up the top to Transform, then explicitly instantiate "as Transform" but we are all good now :).
Your answer

Follow this Question
Related Questions
What do you call a map coordinate or 2D array index pair? 1 Answer
Breaking out of problem code 0 Answers
How to hold information for the split second between running game and returning to edit mode. 0 Answers
how to tell if a for loop has completed 1 Answer
i have a list of transforms and i want to spawn a prefab once for all the transforms in the list. 1 Answer