- Home /
Unity cannot find component of an object in an array.
The Code:
private var resetObjects=new Array(11);
private var resetPositions=new Vector3[11];
function Awake(){
resetObjects=GameObject.FindGameObjectsWithTag("Pins");
resetObjects.Push(GameObject.Find("Ball"));
var a=0;
for(var obj in resetObjects)
{
resetPositions[a++]=obj.transform.position; //Error
}
}
Console Error: Assets/PlayerController.js(16,41): BCE0019: 'transform' is not a member of 'Object'.
What is the Error and how to solve it?
Thank You in advance.
Unity cannot find component of an object in an array
The best title would have been: "I cannot find component of an object in an array." Saying that the engine is not capable of doing it while it is a program$$anonymous$$g issue is a little daring.
I am sorry. First time i asked a question :( Thank you.
Answer by whydoidoit · Jul 04, 2012 at 05:34 PM
You should use a List. which can be dynamically sized, is strongly typed and supports the same access format.
import System.Collections.Generic;
...
var resetObjects = new List.<GameObject>();
Array is really not a good idea - but if you insist you can cast the value like this
resetPositions[a++] = (obj as GameObject).transform.position;
Answer by spinaljack · Jul 04, 2012 at 10:39 AM
You can use an Array of Game Objects (GameObject[]) instead of using Array() or cast the type of obj to GameObject
Then i cannot add another GameObject to that array after using that FindGameObjectsWithTag function.
Your answer
Follow this Question
Related Questions
Weird GetComponent error 2 Answers
Search for specific entity in an array? 1 Answer
Modifying components of an array 1 Answer
2D GameObject Array to 2D List 1 Answer
Disabling A Script on a GameObject From a Different Script 2 Answers