Объявление
public static float SmoothDamp(float current, float target, ref float currentVelocity, float smoothTime, float maxSpeed = Mathf.Infinity, float deltaTime = Time.deltaTime);Параметры
current | Текущее положение. |
target | Позиция, которую мы пытаемся достичь. |
currentVelocity | Текущая скорость, это значение модифицируется функцией каждый раз, когда вы ее вызываете. |
smoothTime | Примерное время, необходимое для достижения цели. Меньшее значение быстрее достигнет цели. |
maxSpeed | Опционально позволяет зажать максимальную скорость. |
deltaTime | Время с момента последнего вызова этой функции. По умолчанию Time.deltaTime. |
Описание
Постепенно изменяет значение в направлении желаемой цели с течением времени.
Значение сглаживается с помощью функции, похожей на пружинный демпфер, которая никогда не выйдет за пределы диапазона. Функцию можно использовать для сглаживания любых значений, позиций, цветов, скаляров.
using UnityEngine;
public class Example : MonoBehaviour
{
// Smooth towards the height of the target
Transform target;
float smoothTime = 0.3f;
float yVelocity = 0.0f;
void Update()
{
float newPosition = Mathf.SmoothDamp(transform.position.y, target.position.y, ref yVelocity, smoothTime);
transform.position = new Vector3(transform.position.x, newPosition, transform.position.z);
}
}