纳金网
标题: 对unity3d中插值的小理解 [打印本页]
作者: ZackD 时间: 2014-9-30 01:10
标题: 对unity3d中插值的小理解
在[color=rgb(85, 85, 85) !important]unity3d中要实现各种平滑效果,插值是不可避免的。但之前一直不太理解插值,上午研究了下,插值是种数学运算。
下面以float temp=Mathf.Lerp(float from,float to,float t)为例说明。
Temp=from+(to-from)*t;
Mathf.Lerp这个函数每调用一次就执行一次。
举个例子:
float DURATION=2.5f;
Public void Update()
{
If(Time.time>DURATION)
Destroy(game);
Float proportion=(Time.time/DURATION) //这个可以确保proportion在0-1之间,因为之前的If(Time.time>DURATION)已经确保了在销毁前Time.time不会超过DURATION。
Renderer.material.color.a=Mathf.Lerp(1,0,proportion); //随着Time.time的逐渐增加,proportion的数值也会不断增大。每次调用Mathf.Lerp所返回的数值也会不断减小。
}
其他的插值还有:
Mathf.Lerp
Color.Lerp
Vector3.Lerp
Quaternion.Lerp
etc..
作者: HIDEOKOJIMA 时间: 2014-9-30 09:24
Thanks for sharing !
作者: leanchen89 时间: 2014-9-30 09:52
线性插值其实就是个公式:(1-n)*x + n*y = result。改变了N的值就实现了线性插值。
作者: oelongeo 时间: 2014-9-30 10:58
谢谢ZackD指导...顶一顶
作者: hyui 时间: 2014-10-2 05:42
Thanks for this
欢迎光临 纳金网 (http://c-www.narkii.com/club/) |
Powered by Discuz! X2.5 |