Ejemplo n.º 1
0
    /// <summary>
    /// Find a path between the start and end positions in world space
    /// </summary>
    /// <param name="start"></param>
    /// <param name="end"></param>
    /// <returns></returns>
    public List <Vector3> FindPath(Vector3 start, Vector3 end)
    {
        List <Vector3> pathPositions = new List <Vector3>();

        if (TilemapGrid == null)
        {
            return(pathPositions);
        }

        List <PathfindingGrid.Node> path = pathfindingGrid.FindPath(WorldToGridPosition(start), WorldToGridPosition(end));

        foreach (PathfindingGrid.Node n in path)
        {
            pathPositions.Add(GridPositiontoWorld(new Vector3Int(n.position.x, n.position.y, 0))
                              + TilemapGrid.GetComponent <GridLayout>().cellSize * 0.5f);
        }
        return(pathPositions);
    }