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); }
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."); }
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; }