Exemple #1
0
    public float GetCost(Track track, TrackNode start, TrackNode end)
    {
        if (start.GetComponent <NodeLink>() == end.GetComponent <NodeLink>())
        {
            return(Int32.MaxValue / 2);
        }

        var startPosition = start.transform.position;
        var endPosition   = end.transform.position;
        var distance      = Math.Abs(startPosition.x - endPosition.x)
                            + Math.Abs(startPosition.y - endPosition.y)
                            + Math.Abs(startPosition.z - endPosition.z);
        var cost = distance / this.baseCostPerDistance;

        cost *= 1.0f / track.SpeedLimit;
        return(cost);
    }