Unity学习(十二): 平滑差值

1.函数描述:

static function Lerp(from:float,to:float,t:float):float.

描述:基于浮点数t返回a到b之间的插值,t限制在0~1之间。

该函数定义在Mathf类中,是一个静态函数。


其实这个用起来很简单,可以实现很多效果,像做抛物线,移动动画等。

下面就用它来实现抛物线轨迹:

using UnityEngine;
using System.Collections;

public class Lerp_test : MonoBehaviour {

    public float startx;    //起始点x位置
    public float endx;      //终结点x
    public float speed;     //数值变化速度
    float starttime;        
    float x;
	 
	void Start () {
        starttime = Time.time;
	}
		 
    //平滑差值用来做抛物线很简单!
	void Update () {
        x = Mathf.Lerp(startx,endx,(Time.time - starttime)*speed);
        Vector3 pos = new Vector3(x,x*(x - 4),transform.position.z);
        transform.position = pos;
	}
}
将这个脚本托给一个新建的cube,然后设置想要的位置,点击运行,即可!

说明:这只是一个简单的抛物线轨迹方程,y = x*(x-4) = (x - 2)^2 - 4;所以对称轴为:x = 2;

与x轴的交点为(0,0),(4,0)。所以建议设置startx = 0f,endx = 4f。我是为了简化所以

用的这个数值。自己可以改的,很简单。

画个图看看吧:

Unity学习(十二): 平滑差值_第1张图片

(画的不是很好!见谅!)

下面是运行效果:

Unity学习(十二): 平滑差值_第2张图片





你可能感兴趣的:(动画,function,脚本,unity,移动)