public void BuildObstacleTree() { List <ObstacleVertex> obstacles = Pathfinding.Util.ListPool <ObstacleVertex> .Claim(); List <ObstacleVertex> src = simulator.GetObstacles(); for (int i = 0; i < src.Count; i++) { ObstacleVertex c = src[i]; do { obstacles.Add(c); c = c.next; } while (c != src[i]); } RecycleOTN(obstacleRoot); obstacleRoot = BuildObstacleTreeRecursive(obstacles); }