Ejemplo n.º 1
0
    // 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
    }
Ejemplo n.º 2
0
    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);
        }
    }