public IEnumerable <IntVector3> Find() { while (m_queue.Count > 0) { if (this.CancellationToken.IsCancellationRequested) { this.Status = BFSStatus.Cancelled; yield break; } if (m_map.Count > this.MaxNodeCount) { this.Status = BFSStatus.LimitExceeded; yield break; } var p = m_queue.Dequeue(); if (m_target.GetIsTarget(p)) { yield return(p); } CheckNeighbors(p); } this.Status = BFSStatus.NotFound; }
public IEnumerable<IntVector3> Find() { while (m_queue.Count > 0) { if (this.CancellationToken.IsCancellationRequested) { this.Status = BFSStatus.Cancelled; yield break; } if (m_map.Count > this.MaxNodeCount) { this.Status = BFSStatus.LimitExceeded; yield break; } var p = m_queue.Dequeue(); if (m_target.GetIsTarget(p)) yield return p; CheckNeighbors(p); } this.Status = BFSStatus.NotFound; }