private NodeDi DijkstrasAlgo(NodeDi start, NodeDi end) { openList = new List <NodeDi>(); workList = new List <NodeDi>(); start.setWeight(0); start.isOpen = false; openList.Add(start); while (openList.Count > 0) { int index = GetMinFNodeAS(); if (index < 0) { //UnityEngine.Debug.Log("index -1"); break; } NodeDi current = openList[index]; openList.RemoveAt(index); workList.Add(current); if (current.Equals(end)) { return(current); } foreach (NodeDi neighNode in GetNeighbours(current)) { float distance = Vector3.Distance(neighNode.getPosition(), current.getPosition()); distance = current.weight + distance; neighNode.isOpen = false; neighNode.setWeight(distance); neighNode.setParentNode(current); openList.Add(neighNode); } } return(null); }