Как сделать так, чтобы статичный объект двигался по оси Y до тех пор, пока не соприкоснётся с таким же объектом? UE5
JooreSss
Знаток
(272),
на голосовании
2 месяца назад
Всем привет, я только начал разработку в UE5. У меня есть вопрос: Как сделать так, чтобы статичный объект двигался по оси Y (либо же X или Z) до тех пор, пока не соприкоснётся с таким же объектом?. А если конкретнее, то у меня стоят две стенки (static mesh, боксы). Мне нужно сделать так, чтобы каждые 5 минут одна из этих стенок двигалась к противоположной, но останавливалась, соприкоснувшись с ней. А через 5 минут двигалась обратно на свою позицию.На скриншоте как раз эти две стенки. Ещё раз постараюсь объяснить: одна из стенок (допустим та, что выбрана) должна двигаться ко второй, но не в неё, т.е. по итогу соприкоснуться и остановиться. Я бы мог просто менять её координаты по таймеру, но во-первых, я не очень понял как пользоваться таймером, а во-вторых, мне нужно плавное движение, которое закончится при соприкосновении.
Очень много воды, заранее извините, просто очень тяжело объяснить, хотя вещь простая
В тике, если переменная can_move == true, меняешь координаты объекта. Не по таймеру. В тике. Там есть, конечно, нода MoveTo, которая сама бы её передвигала, но тогда ты её хрен остановишь.
По эвенту OnHit (или OnOverlap, в зависимости от настроек коллизии) отлавливаешь событие соприкосновение и выставляешь can_move в false
Дальше без таймера никак. Ну, то есть можно, но глупо. Просто используешь одну из нод SetTimerByEvent / SetTimerByFunctionName, они запустят эвент или функцию через заданное время. В этом эвенте/функции просто ставишь переменную обратно в true.
Очень много воды, заранее извините, просто очень тяжело объяснить, хотя вещь простая