Zefirot
@Zefirot

Почему не срабатывает условие сравнения векторов?

MeshAgent часто мне выдаёт массив с вектором 0, 0, 0 , почему не пойму но решил его исключить из массива вообще

private Vector3 VectorNull = new Vector3(0f, 0f, 0f);
.....
if(MeshCorners.Length > 2){
  int ln = 0;
  foreach(Vector3 vl in MeshCorners){ if(vl != VectorNull){ Debug.Log("XX=> " + vl);  ++ln; }}
  Vector3[] TempMeshCorners = new Vector3[ln]; ln = 0;
  foreach(Vector3 vl in MeshCorners){ if(vl != VectorNull){ TempMeshCorners[ln] = vl; ++ln; }}
  MeshCorners = TempMeshCorners;
  }

да вот только проблема, вот что мне выводит
XX=> (-0.1, -0.2, 0.0)
XX=> (0.0, 0.0, 0.0)
XX=> (1.4, 1.2, 0.0)

то есть условие if(vl != VectorNull) не срабатывает, но почему? И как убрать нулевой вектор из массива?
  • Вопрос задан
  • 28 просмотров
Решения вопроса 1
freeExec
@freeExec
Участник OpenStreetMap
Потому что визуальный 0.0 это не математический 0. Смотри в дебагере чему на самом деле равен вектор.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы