@Foxik1

Почему объект двигается только в одну сторону хотя должен двигаться туда и обратно?

Я пытался использовать этот код но при сравнении позиций возвращает False, хотя объект на той позиции
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MoveObjects : MonoBehaviour
{
    public Vector3 start;
    public Vector3 end;
    public Vector3 step;
    private int a = 1;
    // Update is called once per frame
    void Update()
    {
        if (transform.position == end) a = 2;
        else if (transform.position == start) a = 1;
        if (a == 1)
        {
            transform.position += step;
        }
        else
        {
            transform.position -= step;
        }
    }
}

Сам объект
63190aa4673ce304533661.png
  • Вопрос задан
  • 65 просмотров
Решения вопроса 1
GavriKos
@GavriKos Куратор тега Unity
Потому что он никогда не оказывается ТОЧНО в той позиции. Это даже по координатам видно - они отличаютися на меньшие величины, чем step.
Проверяйте либо что объект ПОЧТИ в точке (расстояние меньше какого то эпсилон), либо что он ПРОШЕЛ точку (в предыдущем шаге точка была впереди, а в текущем - сзади).
Ну и читаните про сравнение float, чисто для понимания
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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