Ejemplo n.º 1
0
    public static List <Node> GetPathWithoutRegionSearch(Vector2Int startPosition, Vector2Int targetPosition)
    {
        var startNode  = PathGrid.NodeAt(startPosition.x, startPosition.y);
        var targetNode = PathGrid.NodeAt(targetPosition.x, targetPosition.y);
        var path       = AStarSearch.GetPathWithoutRegionSearch(startNode, targetNode);

        return(path);
    }
Ejemplo n.º 2
0
    public static void TestTimeWithoutRegionSearch(Vector2Int startPosition, Vector2Int targetPosition, int testCount)
    {
        var startNode  = PathGrid.NodeAt(startPosition.x, startPosition.y);
        var targetNode = PathGrid.NodeAt(targetPosition.x, targetPosition.y);

        string AlgoName = "A* no regions";
        float  T        = 0;

        for (int i = 0; i < testCount; i++)
        {
            float startTime = Time.realtimeSinceStartup;
            AStarSearch.GetPathWithoutRegionSearch(startNode, targetNode);
            T += (Time.realtimeSinceStartup - startTime) * 1000 / testCount;
        }
        Debug.Log($"{AlgoName}: {T} ms.");
    }
Ejemplo n.º 3
0
    public void FindAStarDataStructureUpgrade()
    {
        _aStarDataStructureUpgrade.Reset();
        AStarSearch.HandleAddToPath      += _aStarDataStructureUpgrade.AddToPath;
        AStarSearch.HandleAddToClosedSet += _aStarDataStructureUpgrade.AddToClosedSet;

        float startTime = Time.realtimeSinceStartup;

        AStarSearch.GetPathWithoutRegionSearch(PathGrid.NodeAt(Actor.x, Actor.y), PathGrid.NodeAt(Target.x, Target.y));
        float resultTime = (Time.realtimeSinceStartup - startTime) * 1000;

        AStarDataStructureUpgradeTimeValue.text  = resultTime.ToString();
        AStarDataStructureUpgradePathLength.text = _aStarDataStructureUpgrade.Path.Count.ToString();

        AStarSearch.HandleAddToPath      -= _aStarDataStructureUpgrade.AddToPath;
        AStarSearch.HandleAddToClosedSet -= _aStarDataStructureUpgrade.AddToClosedSet;
    }