Этот код работает:
/* create empty list */
Vector3[] vertices = new Vector3[50];
/* add only one element */
vertices[0] = new Vector3(0, 1, 2);
/* test with non-null vectors */
Vector3 test = new Vector3(4, 5, 6);
Vector3 test2 = new Vector3(0, 1, 2);
Vector3 found = Array.Find(vertices, x => x == test);
if (found != Vector3.zero) {
Debug.Log("OK");
} else {
Debug.Log("Not found");
}
Vector3 found2 = Array.Find(vertices, x => x == test2);
if (found2!= Vector3.zero) {
Debug.Log("OK");
} else {
Debug.Log("Not found");
}
Меня раздражает, что он всегда возвращает что-то, , даже если элемент не найден .Когда элемент не найден, он возвращает Vector3.zero
.
Мой вопрос таков: что, если вы хотите иметь Vector3.zero
в массиве (что на самом деле является моим случаем)?Как вы справляетесь с этим?