有时,我们在做游戏时会发现有些跟随动作不够圆滑或者需要一个缓冲的效果,这时,一般会考虑到插值。所以对插值的理解是必需的。(比如摄像机跟随主角)

插值是数学上的一个概念,在这里用公式表示就是:from + (to - from) * t;这也就是Lerp的返回值(用这个公式分别算出x,y,z)。

static function Lerp (from : Vector3, to : Vector3, t : float) : Vector3

from 是起始的位置,to是目标位置,按照数字t在from到to之间插值。这句话比较难理解,下面举个例子。

       

这和我们用公式算出来的如出一辙。现在我们再看一个具体的例子

//在1秒时间动画位置移动从from开始到to结束。(这是官方的例子)

位置移动从start开始到end结束,这好理解,但是为什么是1秒呢?

Time.time是从0开始随时间增加的。

例1的t是一个固定的值,返回一个固定的向量。此时t是变量,在不断增加。那么:

当Time.time = 0时--->transform.position = start.position,位置没有变化;

当Time.time从0趋向于1时--->transform.position 不断接近start.position,该脚本是挂在start物体上的,所以start会不断靠近end。

那么问题来了,当Time.time>1的时候,会怎么样呢?额(⊙o⊙)…我们说不会。

由上面的公式from + (to - from) * t可知,当t=1时,to - from = 0,此时t就无效了。

例1是从静态角度看,例2是从动态角度看的(两个变量,一个是时间在变化,一个是位置在变化)。

想一想例2,如果不是Time.time,而是0.5,会怎么样?(只看一个变量)

由图易知:A物体会不断以0.5的比例无限接近于B。

如果上面都理解了,那么看官方的第二个例子就没什么问题了,试一试吧!

//像弹簧一样跟随目标物体

unity3d问题集 对Vector3.Lerp 插值的理解 - 转自蛮牛相关推荐

  1. Vector3.Lerp

    Unity3D中的线性插值Lerp()函数解析 在unity3D中经常用线性插值函数Lerp()来在两者之间插值,两者之间可以是两个材质之间.两个向量之间.两个浮点数之间.两个颜色之间,其函数原型如下 ...

  2. 序列化探索 颜色随机渐变 Lerp(插值) 渲染组件 unity笔记19

    https://forum.unity.com/threads/when-to-use-serializefield-and-why.184687/ [SerializeField] 有的人说是为了在 ...

  3. unity3d Vector3.Lerp解析

    Vector3.Lerp:http://www.ceeger.com/Script/Vector3/Vector3.Lerp.html 手册中描述的不是很详细,什么叫"按照数字t在from到 ...

  4. Unity3D基础API之Vector3

    Vector3 静态方法 1.Vector3.Angle()--两个向量之间的夹角 public static float Angle(Vector3 from, Vector3 to) 单位:度: ...

  5. Unity的Lerp插值运算

    float result = Mathf.Lerp(float a, float b, float time) Vector3 res = Vector3.Lerp(Vector3 startPos, ...

  6. 【刷b站学到的Unity】Lerp插值

    初学unity,感到各种各样的功能太多,每天打开b站都刷出一大堆不会的,所以在此记录每天学了什么.相关视频和参考文档一切权力归作者,侵删. 基本介绍 最近关注了一个up,他出了个讲Lerp的视频 ht ...

  7. Vector3.Lerp 和 Vector3.SmoothDamp 使用的注意事项

    这两天在做相机平滑跟随玩家的功能,之前用的DoTween可以解决很大一部分的问题.但是目标位置如果一直在改变的话,就会有奇怪的眩晕感.所以老大说换着Vector3.Lerp 和 Vector3.Smo ...

  8. Unity Vector3.Lerp Vector3.LerpUnclamped 的区别

    Vector3.Lerp 最后的 t 一定是 0 到 1 之间 而 Vector3.LerpUnclamped t 其实是可以超出去的 也就是说 如果你想给俩个确定的 vector3 做一个延长线 那 ...

  9. Lerp 函数本质理解

    今天写了两个知识点,发现 CSDN 上都是抄过来抄过去,虽然看看别人写的能解决自己一大部分困惑,然而深入以后还是有不能理解透彻的地方.所以自己把自己理解的加在后面,如有不对,望指教. Unity 中好 ...

最新文章

  1. 使用netstat检测及监测网络连接
  2. 写给计算机的大学生!
  3. 什么是设计模式(Design Patterns)
  4. 怎么判断前轮左右的位置_新手开车技巧,确定前轮位置,准确判断与障碍物距离...
  5. VMware连续三年获评Gartner广域网边缘基础设施魔力象限领导者
  6. 反向算法_10分钟带你了解神经网络基础:反向传播算法详解
  7. 利用JavaScript的字符串操作实现简单查字
  8. Java进阶之网络编程
  9. java中ares框架_ARES辅助开发工具-用户手册.doc
  10. 转: ASP.NET2.0_缓存
  11. List 中的元素排序
  12. 非常有用的微信公众号平台开发各种错误返回码一览表
  13. 北大计算机与微电子学校,中国计算机大会CNCC2019在苏州隆重举行
  14. ps制作图标时的尺寸
  15. 结婚证照片尺寸是多少?教你拍出好看的证件照照片
  16. 在Activity中获取另一个XML文件的控件
  17. 什么是拼多多上货助手?拼多多上货助手有哪些功能?详细介绍
  18. Ubuntu更改密码及hostname步骤
  19. 流媒体协议(一):HLS 协议
  20. unity游戏存档playerprefs

热门文章

  1. 2021年上海市安全员C证考试及上海市安全员C证报名考试
  2. 解神者php奥义高阶,解神者角色强度排行
  3. Bootstrap 自定义
  4. 【转】小米9打开高通Diagnostics端口提取的基带qcn文件改串号
  5. sublime下载与安装
  6. arcengine 开发经典帖(转)
  7. 18. python虚拟环境
  8. Mysql 8.0 创建DBCP连接池
  9. 浅析Java虚拟机的垃圾回收机制(GC)
  10. 计算机应用的程序,计算机应用程序