Alternatively:

float HexSideUnitLength = 0.75f / Mathf.Cos( Mathf.Deg2Rad * 30.0f );
public float hexSize = 2f; //change this to increase cell sizes
Vector3 CoordsToVector3 ( int x, int y ) {
return new Vector3( x * ( HexSideUnitLength * hexSize ), GetHeight( x, y ), ( y + ( 0.5f * Mathf.Abs( x ) % 1 ) ) * hexSize );
}
float GetHeight ( int x, int y ) {
return Mathf.PerlinNoise( x * perlinScale, y * perlinScale );
}
for ( int i = 0; i < 6; i++ ) {
for ( int j = 0; j < 4; j++ ) {
GameObject newHex = (GameObject) Instantiate( theHex, CoordsToVector3( i, j ), Quaternion.identity );
}
}
