コード例 #1
0
        private void ConnectTraversableTiles(IEnumerable <Vector2> tiles, AStar aStar)
        {
            foreach (var tile in tiles)
            {
                var tileId = GetIdForTile(tile);

                for (var x = 0; x < 3; x++)
                {
                    for (var y = 0; y < 3; y++)
                    {
                        var targetTile   = tile + new Vector2(x - 1, y - 1);
                        var targetTileId = GetIdForTile(targetTile);

                        if (tile == targetTile || !aStar.HasPoint(targetTileId) || !IsDiagonalAllowed(x, y, tile, aStar == playerAStar) || GetCell((int)targetTile.x, (int)targetTile.y) == InvalidCell)
                        {
                            continue;
                        }

                        aStar.ConnectPoints(tileId, targetTileId);
                    }
                }
            }
        }