- Home /
Moving an array with game object attached
Hi, I've created an array and attached game objects to it. During gameplay I was hoping to move these objects around by accessing the array accordingly.
The array has no problems and the game objects instantiate in the right positions. The problem is when I go to move the array, the game object doesn't follow. It shows that the array's position has indeed moved, but the object doesn't move along with it.
Any ideas??
Thanks in advance,
The code for instantiating the GO's and the array creation:
private int columns = 5;
private int rows = 1;
private float horizontalSpacing = 6f;
private float verticalSpacing = 10f;
private Vector2 [ , ] gridCoordinates;
private float craneOffset = 1.5f;
public GameObject crane;
private GameObject [] dropZoneArr;
public GameObject dropZone; //selected in the editor
void Start ()
{
// Locations for crane movement
gridCoordinates = new Vector2 [columns, rows];
dropZoneArr = new GameObject[columns];
// Nested "For Loop" for creating grid
for( var i=0; i < columns; i++ )
{
for( var j=0; j < rows; j++ )
{
gridCoordinates[i,j] = new Vector2( i * horizontalSpacing, j + 1 * verticalSpacing + craneOffset );
GameObject dropZoneGO = Instantiate( dropZone , new Vector2( i * horizontalSpacing, j ) , dropZone.transform.rotation ) as GameObject;
dropZoneArr[i] = dropZoneGO.;
}
}
}
The code for the movement of the array and GO's:
private void CheckDropZone()
{
Vector2 dropZonePos;
if( containerPos.x == dropZoneArr[0].transform.position.x )
{
dropZonePos = dropZoneArr[0].transform.position;
}
if( containerPos.x == dropZoneArr[1].transform.position.x )
{
dropZonePos = dropZoneArr[1].transform.position;
}
if( containerPos.x == dropZoneArr[2].transform.position.x )
{
dropZonePos = dropZoneArr[2].transform.position;
}
if( containerPos.x == dropZoneArr[3].transform.position.x )
{
dropZonePos = dropZoneArr[3].transform.position;
}
if( containerPos.x == dropZoneArr[4].transform.position.x )
{
dropZonePos = dropZoneArr[4].transform.position;
}
if( grabReleaseState == 1 )
{
dropZonePos = new Vector2( containerPos.x, containerPos.y );
}
if( grabReleaseState == 5 )
{
dropZonePos = new Vector2( containerPos.x, containerPos.y + containerOffset );
Debug.Log(dropZonePos);
}
I don't see you moving any objects in the code.
dropZonePos = new Vector2( containerPos.x, containerPos.y + containerOffset );
This is not moving anything, it only updates the dropZonePos.
what object are you trying to move?
I don't see you moving any objects in the code.
dropZonePos = new Vector2( containerPos.x, containerPos.y + containerOffset ); This is not moving anything, it only updates the dropZonePos.
what object are you trying to move?
OOPPS, thanks for pointing that out
Answer by gribbly · Mar 04, 2013 at 04:49 PM
You need to modify the positions of the game objects stored in your array. So you need something like:
Vector2 newPos;
//set newPos to be where you want the game object to go
dropZoneArr[0].transform.position = newPos;
Hi, I've created an array and attached game objects to it
It might help you to think of storing objects in an array, as opposed to attaching them to it. Just a thought.
Your answer
Follow this Question
Related Questions
How to remove objects from a list ? 3 Answers
Can't add GameObjects to ArrayList 1 Answer
Keep adding targets to a list 2 Answers
Can I use AddComponent to add (this.script) to an object? 1 Answer
Removing objects from an array 2 Answers