Вы можете использовать SmoothDamp .
Это плавно увеличит вектор, который вы можете использовать в качестве скорости. Это может выглядеть примерно так:
Vector3 targetPositon; // Where you want the cube to move to.
Vector3 refVelocity = Vector3.zero; // This is used inside the function, don't touch!
float smoothing = 0.5f; // How much smoothing there should be.
void Update() {
transform.position = Vector3.SmoothDamp(transform.position, targetPosition,
ref refVelocity, smoothing);
}
SmoothDamp
вернет Vector3, который постепенно приближается к цели и ускоряется / замедляется как пружина.
Правка, другая идея:
Другая вещь, которую вы могли бы сделать, это иметь некоторую скорость v
, которую вы добавляете к позиции в каждом кадре и умножаете ее на число, подобное 1.01f
, или на любое небольшое число, большее единицы. Это немного грубо, но работает.