public WaypointNode EnterInAvailableQueue(Shopper shopper, WaypointNode currentNode) { var registerNodesQueue = currentNode.Edges.Where(e => e.waypointType == WaypointNode.WaypointType.Register) .ToArray(); for (int i = m_CurrentServingQueue; i < registerNodesQueue.Length;) { var queue = registerNodesQueue[i].gameObject.GetComponent <StoreSimulationQueue>(); if (queue && queue.EnterTheQueue(shopper)) { shopper.Behavior = Shopper.BehaviorType.InQueue; m_CurrentServingQueue = (m_CurrentServingQueue + 1) % registerNodesQueue.Length; return(registerNodesQueue[i]); } i++; } shopper.SetWaypoint(currentNode, true); return(currentNode.GetRandomNeighbor()); }