Picture of how to set up a Hexagonal Grid

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 );
        }
    }