public CityFieldPoint GetClosestPoint(Vector3 coord) { Vector2 coordXY = new Vector2(coord.x, coord.z); float minDist = float.MaxValue; CityFieldPoint closestPoint = null; foreach (var point in CityFieldPoints) { var dist = Vector2.Distance(point.Coord, coordXY); if (dist < minDist) { minDist = dist; closestPoint = point; } } return(closestPoint); }
public CityFieldPoint[] CreateField(Vector2Int size) { var points = new CityFieldPoint[size.x * size.y]; for (int x = 0; x < size.x; x++) { for (int y = 0; y < size.y; y++) { points[x * size.y + y] = new CityFieldPoint { demandC = x, demandR = y, demandI = 2, coord = new Vector2Int(x, y) }; } } return(points); }
void UpdateField() { point = field.GetClosestPoint(transform.position); }