Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Vector2.MoveTowards

Объявление

public static Vector2 MoveTowards(Vector2 current, Vector2 target, float maxDistanceDelta);

Описание

Перемещает точку current в сторону target.

По сути, это то же самое, что и Vector2.Lerp, но вместо этого функция гарантирует, что расстояние никогда не превысит maxDistanceDelta . Отрицательные значения maxDistanceDelta отодвигают вектор от target.

using UnityEngine; // Пример 2D MoveTowards // Переместить спрайт туда, где щелкнули мышью // // Установите скорость на -1.0f и спрайт будет двигаться // навсегда от места щелчка мыши public class ExampleClass : MonoBehaviour { private float speed = 10.0f; private Vector2 target; private Vector2 position; private Camera cam; void Start() { target = new Vector2(0.0f, 0.0f); position = gameObject.transform.position; cam = Camera.main; } void Update() { float step = speed * Time.deltaTime; // перемещаем спрайт в указанное место transform.position = Vector2.MoveTowards(transform.position, target, step); } void OnGUI() { Event currentEvent = Event.current; Vector2 mousePos = new Vector2(); Vector2 point = new Vector2(); // вычислить, где находится мышь в мировом пространстве mousePos.x = currentEvent.mousePosition.x; mousePos.y = cam.pixelHeight - currentEvent.mousePosition.y; point = cam.ScreenToWorldPoint(new Vector3(mousePos.x, mousePos.y, 0.0f)); if (Input.GetMouseButtonDown(0)) { // установить цель в место щелчка мыши target = point; } } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3