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 *= 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);*
    
  •  }*
    

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.