Что такое Vector3.MoveTowards в Unity C#?
Метод Vector3.MoveTowards используется для плавного перемещения объекта из одной точки в другую с заданной скоростью. Он обеспечивает контролируемое движение, где объект всегда движется в направлении целевой точки, но не превышает указанное расстояние за один вызов метода.
Этот метод особенно полезен в случаях, когда нужно обеспечить предсказуемое движение, например, при приближении персонажа к цели, перемещении врагов или объектов в игре.
Vector3.MoveTowards
- Линейное движение: Перемещение осуществляется по прямой линии между начальной и целевой точкой.
- Ограничение скорости: Объект перемещается на расстояние, не превышающее значение, заданное в параметре
maxDistanceDelta. - Без превышения цели: Если объект достигает целевой точки, он больше не будет перемещаться, избегая "перепрыгивания" за пределы цели.
using UnityEngine;
public class Enemy : MonoBehaviour
{
public Transform target; // Целевая точка
public float speed = 3.0f; // Скорость перемещения
void Update()
{
// Перемещение объекта в направлении цели
transform.position = Vector3.MoveTowards(transform.position, target.position, speed * Time.deltaTime);
// Проверка, достиг ли объект цели
if (Vector3.Distance(transform.position, target.position) < 0.1f)
{
Debug.Log("Цель достигнута!");
}
}
}
Комментарии