首页 > 其他分享 >Lerp函数与自动normalized

Lerp函数与自动normalized

时间:2024-03-17 16:34:09浏览次数:29  
标签:Vector3 函数 lerp Lerp transform zero normalized forward

Lerp函数与自动normalized

​ 在编写unity代码物体旋转的一个部分遇到了一个奇怪的问题:对tansform.forward使用lerp函数竟然不起作用?

rotate

​ 如果moveDir是(0,0,0),在游戏中角色不会旋转视角回原点(这里当时脑抽了,Vector3.zero也不是原点啊)。但奇怪的是,为什么即使Slerp函数(基本与lerp一至)返回了一个不同于transform.forward的值,角色还是不会旋转呢?经过一顿操作,终于找到了原因。

​ 使用Debug.Log发现控制台中一直打印true,也就是说在moveDir等于0时,lerp会返回一个在normalized后依旧等于transform.forward的值。众所周知,lerp(a, b, t)会返回一个在(a,b)之间的某点t的值。而normalized会使一个长度不是1的向量保持方向不变,而长度回到1,至此,问题已经解决了。

​ 假设transform.forward向量长这样

那么与Vector.zero作为lerp的参数得到的结果是这样

image-20231031121449376

​ 那么这个图中标记会红色的向量进行normalized之后会变回原来的transform.forward!原因在于与Vector3.zero进行lerp的结果只会改变长度,而不改变方向。所以代码中返回的值虽然不与transform.forward一样,但因为transform.forward会自己normalized自己,最后导致transform.forward没有变化。

​ ps:如果在lerp(a,Vector3.zero,t)中设置的t大于1,transform.forward会被设为Vector3.zero从而导致自己normalized自己找不到正确的方向而报错。

image-20231031122152452

标签:Vector3,函数,lerp,Lerp,transform,zero,normalized,forward
From: https://www.cnblogs.com/kekekuli/p/17799980.html

相关文章

  • 说JS作用域,就不得不说说自执行函数
    一个兜兜转转,从“北深”回到三线城市的小码农,热爱生活,热爱技术,在这里和大家分享一个技术人员的点点滴滴。欢迎大家关注我的微信公众号:果冻想前言不得不吐槽,学个JS,这个概念也太多了,但是这些概念你不懂吧,代码你都看不懂,你都寸步难行。好吧,这又遇到了作用域方面的知识盲区,然后发......
  • 激活函数初识
    一:激活函数的概念1.激活函数的定义激活函数(ActivationFunction)是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式。类似于人类大脑中基于神经元的模型,激活函数最终决定了要发射给下一个神经元的内容。(是一种映射,把所得到的结果转化成其他的表达的方法)2......
  • 重写len函数对象魔术方法
    ###len魔术方法'''触发时机:使用len(对象)的时候自动触发功能:用于检测对象中或者类中某个内容的个数参数:一个self接受当前对象返回值:必须返回整型'''len(对象)=>类中的所有自定义成员classMyClass():pty1=1pty2=2__pty3=3deffunc1(): passdeffunc2(): ......
  • python一些函数用法
    1、性别defxb(x):ifpd.isnull(x):return"空"elifint(x[-2])%2==1:return"男"elifint(x[-2])%2==0:return"女"else:return"其他"deff(x):returnx.nunique()2、省份defprovince(x):ifstr(x)[0:2]=='11':......
  • call仿函数
    call仿函数####__call__魔术方法''' 触发时机:把对象当作函数调用的时候自动触发 功能:模拟函数化操作 参数:参数不固定,至少一个self参数 返回值:看需求'''#(1)基本语法classMyClass(): def__call__(self): print("__call__魔术方法被触发...")obj=M......
  • del析构函数
    del析构函数####__del__魔术方法(析构方法)''' 触发时机:当对象被内存回收的时候自动触发[1.页面执行完毕回收所有变量2.所有对象被del的时候]功能:对象使用完毕后资源回收 参数:一个self接受对象 返回值:无'''#(1)基本语法classLion(): def__init__(self,na......
  • 【滤波跟踪】基于Huber函数和最大相关熵的抗差滤波算法实现GNSS导航定位粗差处理结合
     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。......
  • UG NX二次开发(C#)-CAM-采用内部函数获取drill操作的进给
    CAM二次开发第一章UGNX二次开发(C#)-CAM-采用内部函数获取drill操作的进给文章目录CAM二次开发1、前言2、在高版本中打开drill加工模板3、读取drill加工操作3.1用NXOpen的FindObject实现3.2、通过Collection集合获取3.3通过选择工序导航器实现(Ufun和NXOpen......
  • 滴水逆向笔记系列-win32总结1-43.宽字节-44.事件_消息_消息处理函数
    第四十三课win32宽字节1.编码0x00.ASCII码1、ASCII码使用指定的7位或8位二进制数组合来表示128或256种可能的字符2、标准ASCII码使用7位二进制数来表示所有的大写和小写字母,数字0到9、标点符号,以及在美式英语中使用的特殊控制字符。3、扩展ASCII码允许将......
  • 滴水逆向笔记系列-win32总结2-45.esp寻址_定位回调函数-46.子窗口_消息处理函数-47.资
    第四十五课win32esp寻址_定位回调函数自己vs编译的exe入口函数好像和课程视频哩的vc6不一样,没办法跟着视频走,可以用课件里给的作业exe勉强跟着视频学,前面的都差不多,课件下载地址:https://www.bcdaren.com/video/videoPlay/3303185150621818881.win32应用程序入口识别没加过壳......