首页 > 其他 > 详细

Lerp在X秒内插值

时间:2019-06-30 22:21:39      阅读:111      评论:0      收藏:0      [点我收藏+]

在X秒内插值

我们知道Mathf.Lerp函数的是用在两个值之间进行插值,用于平滑过渡。

var 插值结果 = Mathf.Lerp(from,to,rate) //rate是0~1的值

Unity没有提供一个直接的接口,用于在X秒内进行插值,那么如何实现在X秒内进行插值呢?

示例代码:

//总时间
var duration = 3.0f;
//开始时间
float time_start ;
bool end = false;
bool start = false;

//每帧调用
void OnGUI(){
    if(GUI.Button(new Rect(100,10,100,40))){
        end = false;
        start = true;
        time_start= Time.time;
    }
    if(start&&!end){
        var rate = Mathf.Clamp01((Time.time-time_start)/duration)
        //在3秒内从0~1
        var value = Mathf.Lerp(0,1,rate);
        if(value>=1){
            end = true
            Debug.Log("走完了")
        }
    }
}

Lerp在X秒内插值

原文:https://www.cnblogs.com/zhaoqingqing/p/11111464.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!