public static Vector2Int GetFreeField(this IPathfinder traversibleMapSource, Vector2Int avoid, out bool valid) { valid = false; Vector2Int result = Vector2Int.left; if (traversibleMapSource.MapExists) { Vector2Int[] traversibleFields = traversibleMapSource.GetTraversibleFields(); if (traversibleFields.Length > 1 || (traversibleFields.Length == 1 && !traversibleFields[0].Equals(avoid))) { int index = -1; do { index = Random.Range(0, traversibleFields.Length); }while (traversibleFields[index].Equals(avoid)); result = traversibleFields[index]; valid = true; } } return(result); }