Interpolates between min and max with smoothing at the limits.
This function interpolates between min and max in a similar way to Lerp. However, the interpolation will gradually speed up from the start and slow down toward the end. This is useful for creating natural-looking animation, fading and other transitions.
// Minimum and maximum values for the transition.
var minimum = 10.0;
var maximum = 20.0;
// Time taken for the transition.
var duration = 5.0;
private var startTime: float;
function Start() {
// Make a note of the time the script started.
startTime = Time.time;
}
function Update() {
// Calculate the fraction of the total duration that has passed.
var t = (Time.time - startTime) / duration;
transform.position = Vector3(Mathf.SmoothStep(minimum, maximum, t), 0, 0);
}
using UnityEngine;
using System.Collections;
public class example : MonoBehaviour {
public float minimum = 10.0F;
public float maximum = 20.0F;
public float duration = 5.0F;
private float startTime;
void Start() {
startTime = Time.time;
}
void Update() {
float t = (Time.time - startTime) / duration;
transform.position = new Vector3(Mathf.SmoothStep(minimum, maximum, t), 0, 0);
}
}
import UnityEngine
import System.Collections
class example(MonoBehaviour):
public minimum as single = 10.0F
public maximum as single = 20.0F
public duration as single = 5.0F
private startTime as single
def Start():
startTime = Time.time
def Update():
t as single = ((Time.time - startTime) / duration)
transform.position = Vector3(Mathf.SmoothStep(minimum, maximum, t), 0, 0)