@Zimaell

Как округлить transform.position?

У меня идет перемещение объекта к заданным координатам, как только он до них дошел то срабатывает действие
Vector3 TPos;
void BlockSwap(){
  if(TPos != obj.transform.position){
    Debug.Log(TPos.x +" != " + obj.transform.position.x);
    MooveColor.transform.position = Vector3.MoveTowards(obj.transform.position, new Vector3(TPos.x, TPos.y, 0), 5f * Time.deltaTime);
    }else{
      Action ="";
      obj.transform.position = this.transform.position;
      }
  }

но условие не срабатывает так так числа не совсем совпадают, вот например
-0,4800001 != -0,4799805

то есть по сути нужно либо округлить y и x, либо это делать по другому, подскажите как правильно сделать?
  • Вопрос задан
  • 231 просмотр
Решения вопроса 1
GavriKos
@GavriKos Куратор тега Unity
Сравнивать флоты как принято сравнивать флоты - с определенным допуском.
Прям в юнити есть для этого метод Approximatly. Но он может оказаться сильно точным - так что просто сравните модуль разницы с неким эпсилоном
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы