在Unity里面Lerp函数可以实现缓动效果
    
    using UnityEngine;
    
    using System.Collections;
   
    public class test : MonoBehaviour {
    
   
private Vector3 newPos;
  void Start ()
   {
    pos = transform.position;
 }
     void Update () {
    if(Input.GetKeyDown(KeyCode.A))
        pos = new Vector3(-3,8,22);
    if(Input.GetKeyDown(KeyCode.D))
        pos = new Vector3(3,8,22);
    transform.position = Vector3.Lerp(transform.position,pos,Time.deltaTime);
}
    }
    
    若Lerp(from(起点),to(终点),value),则
    
    插值函数Lerp()的工作原理(公式):
    
    返回值 = from+value*(to – from);
    
    需要注意的是,这里的value取值范围为0到1。
    
    上例代码中使 value=Time.deltaTime(每帧中的时间增量(一般来说是从0到1的一个动态数值)),这样当Time.deltaTime平滑增加时,通过插值函数的作用,就时物体的position平滑变动,物体就实现了缓动的效果。
   
 
版权声明:本文为qq_43770004原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
