Как заставить один объект двигаться к другому?
Есть код. Есть массив платформ, к одной из которых должен двигаться объект, когда входит в триггер. Но не движется. Ошибок никаких нет. Проверяла через Update для теста - не работает. Не понимаю, почему. Смотрела видео по MoveTowards - вроде бы, он подходит для задачи
[SerializeField] private GameObject _landingPlatform;
private int _landingSpeed = 10;
private void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag("Player"))
{
Landing();
}
}
private void Landing()
{
gameObject.transform.Translate(Vector3.MoveTowards(gameObject.transform.position, _landingPlatform.transform.position, _landingSpeed));
}
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
OnTriggerEnter выполнится единовременно, в то время как движение вам нужно постоянно на сколько я понимаю. Так что вам нужно движение сделать в методе Update, в зависимости от того вошёл объект в триггер или нет. То есть по сути в OnTriggerEnter надо положить какую-то булево значение в некую переменную, а в Update смотреть, если эта переменная стала true - работает Landing()