在Unity里面Lerp函数可以实现缓动效果
下面例子实现点光源的移动
在场景中创建好一个平面,一个点光源,我在这里随便放了一个模型。
然后新建c#脚本,代码如下:
using UnityEngine;
using System.Collections; public class Lerp : MonoBehaviour { public Vector3 newPos;
// Use this for initialization
void Start () {
newPos = transform.position;
} // Update is called once per frame
void Update () {
if(Input.GetKeyDown(KeyCode.Q))
newPos = new Vector3(-,,);
if(Input.GetKeyDown(KeyCode.E))
newPos = new Vector3(,,); transform.position = Vector3.Lerp(transform.position,newPos,Time.deltaTime);
}
}
然后将脚本拖动到点光上面,按下键盘Q和E键就可以看到效果了。
上面是用Vector3的Lerp函数进行缓动的。里面的参数是(Vector3 from,Vector3 to,float time);
比如我们想改变light的颜色或者强度intensity,那么参数是2个浮点数,我们就可以用Mathf.Lerp(float from,float to,float time)进行缓动了。