Vector2.SmoothDamp
Declaration
public static Vector2 SmoothDamp(Vector2 current, Vector2 target, ref Vector2 currentVelocity, float smoothTime, float maxSpeed = Mathf.Infinity, float deltaTime = Time.deltaTime);Параметры
| Параметр | Описание |
|---|---|
| текущий | Текущее положение. |
| Цель | Позиция, которой мы пытаемся достичь. |
| currentVelocity | Текущая скорость, это значение изменяется функцией каждый раз, когда вы ее вызываете. |
| smoothTime | Примерное время, которое потребуется для достижения цели. Меньшее значение означает, что цель будет достигнута быстрее. |
| maxSpeed | По желанию позволяет зажимать максимальную скорость. |
| deltaTime | Время с момента последнего вызова этой функции. По умолчанию Time.deltaTime. |
Описание
Постепенное изменение вектора в направлении желаемой цели с течением времени.
Вектор сглаживается некоторой функцией, подобной пружинному дамплеру, которая никогда не будет превышать заданные пределы.
// Smooth towards the target
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { public Transform target; public float smoothTime = 0.3F; private Vector2 velocity = Vector2.zero;
void Update() { // Define a target position above the target transform Vector2 targetPosition = target.TransformPoint(new Vector2(0, 5));
// Smoothly move the camera towards that target position transform.position = Vector2.SmoothDamp(transform.position, targetPosition, ref velocity, smoothTime); } }