Mathf.SmoothDamp 平滑阻尼

static function SmoothDamp (current : float, target : float, ref currentVelocity : float, smoothTime : float, maxSpeed : float = Mathf.Infinity, deltaTime : float = Time.deltaTime) : float



Gradually changes a value towards a desired goal over time.


The value is smoothed by some spring-damper like function, which will never overshoot. The function can be used to smooth any kind of value, positions, colors, scalars.


using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
	public Transform target;
	public float smoothTime = 0.3F;
	private 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);
// Smooth towards the height of the target
var target : Transform;
var smoothTime = 0.3;
private var yVelocity = 0.0;

function Update () {
	var newPosition : float = Mathf.SmoothDamp(transform.position.y, target.position.y,
	yVelocity, smoothTime);
	transform.position = Vector3(transform.position.x, newPosition, transform.position.z);
Page last updated: 2011-2-23