在[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..
|