@roma79737

Как в Unity сделать проверку, когда объект пришел в нужную точку — выполнять?

При чем точка непостоянна, все что нам известно это то, что точка в которую перемещается объект находится на 10 от позиции объекта (x = gameObject.transform.position.x + 10f).
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
ShockWave2048
@ShockWave2048
imposter
Просто измерить расстояние между двумя точками. Если меньше искомого предела (с нулем лучше не мерять).
const float MIN_RANGE = 0.1f;
// запоминаем целевую точку
var target = new Vector3(gameObject.transform.position.x + 10f, 0f, 0f);
// в Update() меряем дистанцию
if (Vector3.Distance(target, gameObject.transform.position) < MIN_RANGE)
{
    // проверку прошел!
}


Для прибытия в ограниченную зону или детектирования контакта с чем то, лучше использовать коллайдеры.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@stalker1hunt
У вас не правильна реализация финальной точки если вы банально не можете её найти через Find или же получить через ваш менеджер который управляет генерацией точки, пересмотрите реализацию генерацию точек.
Ибо банально vector3 distance c нормализацей вам будет достаточно что бы найти расстояние между двумя точками и проверить если distance минимальная то invokeсобытия.

Есть ещё вариант генерировать не просто точку а префаб с тригером и когда обьект с tag заходит туда, делать нужные вам действия.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Считать (мониторить) смещение координат между отрезками перемещения.
Ответ написан
Ваш ответ на вопрос

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

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