Exemple #1
0
    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);
    }
Exemple #2
0
    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);
 }