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