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。我是为了简化所以

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

画个图看看吧:


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

下面是运行效果:






  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值