本文整理汇总了C#中TileMap.GetTiles方法的典型用法代码示例。如果您正苦于以下问题:C# TileMap.GetTiles方法的具体用法?C# TileMap.GetTiles怎么用?C# TileMap.GetTiles使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TileMap
的用法示例。
在下文中一共展示了TileMap.GetTiles方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Find
public static List<Tile> Find(TileMap tileMap, Tile sourceTile, Tile destinationTile, bool moveThroughOccupied)
{
List<Tile> shortestPath = new List<Tile>();
Dictionary<Tile, int> tileToDistance = new Dictionary<Tile, int>();
Dictionary<Tile, Tile> tileToOptimalPrevious = new Dictionary<Tile, Tile>();
List<Tile> unvisited = new List<Tile>(tileMap.GetTiles());
if (!moveThroughOccupied) {
unvisited = TileUtility.FilterOutOccupiedTiles(unvisited);
unvisited.Add(sourceTile);
}
tileToDistance.Add(sourceTile, 0);
Tile currentTile = null;
int count = 0;
while (unvisited.Count > 0 && count < 100) {
count++;
currentTile = TileWithMinDistance(tileToDistance, unvisited);
unvisited.Remove(currentTile);
CalculateDistanceAndUpdatePath(currentTile, tileMap.TopNeighbor(currentTile), tileToDistance, tileToOptimalPrevious, moveThroughOccupied);
CalculateDistanceAndUpdatePath(currentTile, tileMap.BottomNeighbor(currentTile), tileToDistance, tileToOptimalPrevious, moveThroughOccupied);
CalculateDistanceAndUpdatePath(currentTile, tileMap.LeftNeighbor(currentTile), tileToDistance, tileToOptimalPrevious, moveThroughOccupied);
CalculateDistanceAndUpdatePath(currentTile, tileMap.RightNeighbor(currentTile), tileToDistance, tileToOptimalPrevious, moveThroughOccupied);
}
Debug.Log("starting return path - " + count);
Tile returnTile = destinationTile;
shortestPath.Add(returnTile);
count = 0;
while (returnTile != sourceTile && count < 100) {
count++;
Debug.Log("finding last hop for " + returnTile.TileData);
returnTile = tileToOptimalPrevious[returnTile];
Debug.Log("found " + returnTile.LocationString());
shortestPath.Add(returnTile);
}
Debug.Log("finish return path");
shortestPath.Reverse();
return shortestPath;
}