protected void CreateHexTileAt(HexTile hexTile, int x, int y, HexGrid grid, int owner) { var gridPos = new Vector2(x, y); var worldPos = grid.ToPixel(gridPos); hexTile.Grid = grid; hexTile.Pos = gridPos; hexTile.Owner = owner; hexTile.Accessibility = TileAccessibility.Accessible; hexTile.Obj.transform.position = worldPos; hexTile.Obj.transform.parent = grid.TilesObj.transform; hexTile.Obj.name = "Tile(" + x + ", " + y + ")"; hexTile.HexCollider = hexTile.Obj.AddComponent <HexTileCollider>(); hexTile.HexCollider.Tile = hexTile; hexTile.HexCollider.MCollider.sharedMesh = _hexTileMesh; hexTile.HexCollider.MCollider.convex = true; Material[] materials = new Material[2]; materials[0] = HexTileBaseMats[0]; materials[1] = HexTileSkirtMats[0]; hexTile.View = hexTile.CreateView(_hexTileMesh, materials, "View", "Grid"); materials = new Material[1]; materials[0] = HexTileOverlayMats[0]; hexTile.Overlay = hexTile.CreateView(_hexTileOverLayMesh, materials, "Overlay", "Grid"); materials = new Material[1]; materials[0] = HexGridOverlayMat; hexTile.GridOverlay = hexTile.CreateView(_hexTileOverLayMesh, materials, "Grid", "Grid"); grid.Tiles.Add(gridPos, hexTile); }