float targetX;
const float halfWayTime = 0.1f;
void Update () {
float dx = targetX - transform.position.x;
transform.Translate (dx * (1 - Mathf.Pow (0.5f, Time.deltaTime / halfWayTime), 0, 0);
}
Это создает шаблон движения, который сначала быстрый, но в конце замедляется, и targetX можно редактировать в любое время.halfWayTime
- это время, за которое объект завершит половину своего пути к цели, если он равен 0,1, то за 0,1 с он переместится на 50% от исходного расстояния, на 0,2 с - 75%, на 0,3 с - 87,5%.и т. д.
Кстати, вы можете изменить этот код для работы со всеми координатами:
void Update () {
transform.position = Vector3.Lerp (
target,
transform.position,
Mathf.Pow (0.5f, Time.deltaTime / halfWayTime)
);
}