private void InstantiateSquare(GameObject squarePrefab, IntVector2 boardPosition) {
// instantiate the square and size it correctly
GameObject square = Instantiate<GameObject>(squarePrefab);
square.transform.SetParent(transform, false);
RectTransform squareRectTransform = square.transform as RectTransform;
squareRectTransform.sizeDelta = cellSize;
// assign collider properties
BoxCollider2D collider = square.GetComponent<BoxCollider2D>();
if (collider == null) {
Debug.LogErrorFormat("Generated square at {0} does not have a box collider 2d component.", boardPosition);
return;
}
collider.size = cellSize;
// assign tile properties
Tile tile = square.GetComponent<Tile>();
if (tile == null) {
Debug.LogErrorFormat("Generated square at {0} does not have a tile component.", boardPosition);
return;
}
tile.Coordinates = boardPosition;
tile.SetParentBoard(this);
// add to the board
board[boardPosition.x, boardPosition.y] = square;
}