// Start is called before the first frame update void Start() { #if UNITY_EDITOR int width = xMax - xMin + 1; int height = yMax - yMin + 1; AStarBlockTool aStarBlockTool = new AStarBlockTool(width, height); for (int i = 0; i < ways.Length; i++) { aStarBlockTool.AddWay(GetWayInfo(ways[i])); } for (int i = 0; i < blocks.Length; i++) { bool[][,] blockPassWay = new bool[blocks[i].ways.Length][, ]; for (int j = 0; j < blocks[i].ways.Length; j++) { blockPassWay[j] = GetWayInfo(blocks[i].ways[j]); } aStarBlockTool.AddBlock(GetWayInfo(blocks[i].block), blockPassWay); } bool[,] _ways = aStarBlockTool.getWays(); //输出json数据 AStarBlockJsonTool aStarBlockJsonTool = new AStarBlockJsonTool(); aStarBlockJsonTool.BuildJsonData(xMin, yMin, xMax, yMax, _ways, Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + "/" + outputPath); #endif }
void Start() { string outputPathResult = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + "/output.json"; AStarBlockJsonTool aStarBlockJsonTool = new AStarBlockJsonTool(); AStarBlockJsonTool.TileMapBlockJsonData tileMapBlockJsonData = aStarBlockJsonTool.GetJsonData(outputPathResult); AStartTool aStartTool = new AStartTool(tileMapBlockJsonData.xMin, tileMapBlockJsonData.yMin, tileMapBlockJsonData.xMax, tileMapBlockJsonData.yMax, tileMapBlockJsonData.ways); long nowTime = DateTime.Now.Ticks; Vector2Int[] ways = aStartTool.GetWays(new Vector2Int(-17, -18), new Vector2Int(-16, 16)); //Vector2Int[] ways = aStartTool.GetWays(new Vector2Int(-17, -18), new Vector2Int(-17, -19)); print(((DateTime.Now.Ticks - nowTime) / 10).ToString() + "us"); if (ways != null) { ChangeColor(ways, Color.blue); } }