public Vector3 GetNearestNode(Vector3 position, AisleSide sides) { List <Vector3> nodes = new List <Vector3>(); if (sides.HasFlag(AisleSide.Left)) { nodes.AddRange(leftNodes); } if (sides.HasFlag(AisleSide.Right)) { nodes.AddRange(rightNodes); } if ((int)sides == 0) { Debug.LogError("No nodes to search for when locating nearest node."); } Vector3 chosenNode = position; float minDistance = Mathf.Infinity; foreach (Vector3 n in nodes) { float distance = Vector3.Distance(n, position); if (distance < minDistance) { chosenNode = n; minDistance = distance; } } return(chosenNode); }