查看: 1100|回复: 0
打印 上一主题 下一主题

[其他] 对Unity3d中插值的小理解

[复制链接]

2317

主题

54

听众

2万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
20645
精华
62

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2014-11-30 08:18:02 |只看该作者 |倒序浏览

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

分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

关闭

站长推荐上一条 /1 下一条

手机版|纳金网 ( 闽ICP备08008928号

GMT+8, 2024-5-14 08:48 , Processed in 0.084507 second(s), 33 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部