Zefirot
@Zefirot

Как сравнить позиции до и после движения одного объекта?

Мне нужно сравнить старую и новую позицию объекта
private void Move(float v, float h){
  OldPosition = transform.position;
  // OldPosition = new Vector3(transform.position.x, transform.position.y, transform.position.z); и так пробовал
 
  MoveDirection = new Vector3(h, 0f, v);
  RB.MovePosition(transform.position + MoveDirection * Speed * Time.fixedDeltaTime);
 
  NewPosition = transform.position;
  // NewPosition = new Vector3(transform.position.x, transform.position.y, transform.position.z); и так пробовал
 
  Debug.Log(NewPosition +"!="+ OldPosition);
  
  if(NewPosition != OldPosition){ ... }
  }

но почему-то NewPosition и OldPosition всегда равны, в чём может быть дело?
  • Вопрос задан
  • 54 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Mimai
Разработчик игр, веб-разработчик.
потому что у тебя к OldPosition все еще присваивается transform.position.
Попробуй это OldPosition = transform.position; переместить в Start.
(Я точно не знаю, это лишь предположение, я новичек в c#)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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