void Update() { if (searchQueueList.Count > 0 && !searching) { SearchQueue qItem = searchQueueList[0]; StartCoroutine(_SearchRoutine(qItem.startNode, qItem.endNode, qItem.graph, qItem.callBackFunc)); searchQueueList.RemoveAt(0); } }
public void _GetPath(NodeTD startN, NodeTD endN, NodeTD[] graph, SetPathCallbackTD callBackFunc) { if (!searching) { //commence search StartCoroutine(_SearchRoutine(startN, endN, graph, callBackFunc)); } else { //if a serach is in progress, put current request into the queue list SearchQueue q = new SearchQueue(startN, endN, graph, callBackFunc); searchQueueList.Add(q); } }