public void SetTilePlayerColor(HexCoord position, int player) { var meshFilter = GetComponent<MeshFilter>(); var mesh = meshFilter.sharedMesh; var vertices = mesh.vertices; var uv = mesh.uv; // Find the indices of the vertices of var v = position.Corner3d(0) * TileScale; int i; for (i = 0; i < vertices.Length && vertices[i] != v; i++) ; if (i == vertices.Length) return; // vertex not found -> position probably not on board for (int corner = 0; corner < 6; corner++, i++) { uv[i] = GetUvForCornerAndPlayer(corner, player); } mesh.uv = uv; }