Unity中的Lerp插值的使用

Unity中的Lerp插值使用

  • 前言
  • Lerp是什么
  • 如何使用Lerp

前言

        平时在做项目中插值的使用避免不了,之前一直在插值中使用存在误区,在这里浅浅记录一下。之前看的博客或者教程还多都存在一个“永远到达不了,只能无限接近”的一个概念。可能是之前脑子中没有插值的概念没理解对,或者当时看的up主也是没理解对,程序员难免会有“bug”,发现解决完善它就OK了。

        一直坚持做一件事很难,希望大家都能坚持下去,慢慢的成长。

Lerp是什么

        首先看官方的定义

public static Vector3 Lerp(Vector3 a, Vector3 b, float t);

参数
在这里插入图片描述
返回值

a + (b - a) * t.

描述
        两点之间的线性插值。

        通过插值器t在点a和b之间进行插值。参数t被限制在[0,1]的范围内。这通常用于在两个端点之间的直线上找到一个点(例如,在这些点之间逐渐移动一个物体)。

以上是官方给出的描述,那Lerp的中的三个参数a,b,t具体是什么呢?

        我的理解是a是起始点,b是目标点,t是一个0到1的进度,举一个例子如果a为(0,0,0),b为(10,10,10),那么t为0.5时,返回(5,5,5)。就这么简单。开发项目中最常见的就是处理摄像机的移动用到Lerp

void Update()
{transform.position = Vector3.Lerp(transform.position, endPosition, Time.deltaTime);
}

        上述代码的效果就是,运行一开始摄像机会快速向endPosition位置移动,随着距离接近然后越来越慢。出现这个现象的原因,一开始transform.position与endPosition的距离最远,所以插值的距离也大,视觉上运动很快,随着距离慢慢靠近,插值的距离也越来越短,就会出现先快后慢的效果。这里使用Time.deltaTime就出现了开头说的永远无法到达目标的问题。只会越来接近。

如何使用Lerp

        要理解Lerp,最重要一点就是使用时要有一个进度的一个概念,如上述例子中如果t为0.5,则返回的坐标就为(5,5,5),这个0.5就是一个进度
举例来说明,就是上述例子1秒内一个物体从(0,0,0)到(10,10,10)

    Vector3 startPos = Vector3.zero;Vector3 endPos = new Vector3(10,10,10);float duration = 1f;float curTime = 0f;void Update(){float t = curTime / duration;transform.position = Vector3.Lerp(startPos, endPos, t);curTime+=Time.deltaTime;}

上述代码中的t就是进度,这样就不会到达不了endPos

如有错误,欢迎指正。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/690225.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

open3d DBSCAN 聚类

DBSCAN 聚类 一、算法原理1.密度聚类2、主要函数 二、代码三、结果四、相关数据 一、算法原理 1.密度聚类 介绍 基于密度的噪声应用空间聚类(DBSCAN):是一种无监督的ML聚类算法。无监督的意思是它不使用预先标记的目标来聚类数据点。聚类是指试图将相似的数据点分…

微信美容预约小程序开发实战教程,快速掌握开发技巧

如果你想开发一个美容美发小程序,以下是一个搭建指南,供你参考。 1. 使用第三方制作平台 首先,你需要使用一个第三方制作平台,如乔拓云网。在该平台上,你需要注册并登录,然后点击【轻应用小程序】进入设计…

springboot201基于SpringBoot的论坛系统设计与实现

论坛系统设计与实现 摘 要 如今的时代,是有史以来最好的时代,随着计算机的发展到现在的移动终端的发展,国内目前信息技术已经在世界上遥遥领先,让人们感觉到处于信息大爆炸的社会。信息时代的信息处理肯定不能用之前的手工处理这…

LineageOS:Android开源手机操作系统的未来之路

LineageOS:开源手机操作系统的未来之路 1. 引言 当前移动技术的迅猛发展使得手机操作系统变得至关重要。在众多操作系统中,LineageOS作为一款备受推崇的开源手机操作系统,其在过去几年中取得了显著的发展。本文将介绍LineageOS作为一款开源…

2009-2023年上市公司华证ESG评级得分数据

2009-2023年上市公司华证ESG评级得分数据 1、时间:2009-2023年 2、来源:华证ESG评级 3、范围:A股上市公司 4、指标:股票代码、证券简称、年份、ESG得分-年均值、ESG得分-年中位数 5、方法说明:将华证ESG评级进行赋…

力扣题目训练(16)

2024年2月9日力扣题目训练 2024年2月9日力扣题目训练530. 二叉搜索树的最小绝对差541. 反转字符串 II543. 二叉树的直径238. 除自身以外数组的乘积240. 搜索二维矩阵 II124. 二叉树中的最大路径和 2024年2月9日力扣题目训练 2024年2月9日第十六天编程训练,今天主要…

Nginx学习笔记

Bilibili尚硅谷视频 Nginx 简介 Nginx 概述 Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理服务器,特点是占有内存少,并发能力强,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数 。 正向代理 正向代理:如…

【千帆平台】使用千帆大模型平台创建自定义模型调用API,贺岁灵感模型,文本对话

欢迎来到《小5讲堂》 大家好,我是全栈小5。 这是《千帆平台》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和…

镜像管理工具harbor启动在docker中,应该如何重启?

Harbor 是一个用于存储和分发 Docker 镜像的企业级Registry服务器。在 Docker 环境中启动和管理 Harbor 时,您可能需要重启服务来应用更新或配置更改。以下是在 Docker 中重启 Harbor 的步骤: 登录到服务器:首先,您需要通过 SSH 或…

神秘物品,从此告别网络焦虑!随身WiFi好用吗?随身WiFi怎么选?

出门在外,网络可是我们的“生命线”。不拿钱包不拿身份证没啥,不拿手机,没有网可是大大的坏事儿。为了一劳永逸的解决我的网络问题,这次我尝试了一款随身WiFi,来简单聊聊我的真实体验感受吧! 一、优点&…

碳化硅模块使用烧结银双面散热DSC封装的优势与实现方法

碳化硅模块使用烧结银双面散热DSC封装的优势与实现方法 新能源车的大多数最先进 (SOTA) 电动汽车的牵引逆变器体积功率密度范围从基于 SSC-IGBT 的逆变器的 <10 kW/L 到基于 SSC-SiC 的逆变器的约 25 kW/L。100 kW/L 代表了这一关键指标的巨大飞跃。 当然&#xff0c;随着新…

热辣滚烫--如何让PCB上的固定螺丝孔沉下去

高速先生成员--王辉东 龙腾盛世,岁月如歌。祝大家开工大吉&#xff0c;热辣滚烫&#xff0c;红红火火,新的征程已然拉开帷幕。 林如烟和赵理工常听大师兄说&#xff0c;最近几年随着国内芯片行业的快速崛起&#xff0c;ATE工装治具和测试板的需求持续增大&#xff0c;由于芯片…

七、计算机视觉-图像的ROI区域

文章目录 1、什么是ROI2、ROI如何实现的3、一个案例总结 1、什么是ROI 在计算机视觉中&#xff0c;ROI代表感兴趣区域&#xff08;Region of Interest&#xff09;&#xff0c;它是指图像或视频中被指定为需要特别关注或处理的区域。ROI可以帮助减少计算量&#xff0c;并且在处…

TrueNAS磁盘扩容(VDEV 和 RAID 技术)

目录 背景扩容前准备扩容有风险安装新的硬盘到卡槽扩容测试一个VDEV两个VDEV 正式扩容关于Raid总结 背景 这几天将原来windows服务器上的文件拷贝到新做好的TrueNAS上&#xff0c;发现磁盘满了&#xff0c;服务器上还有硬盘卡槽&#xff0c;就新买了12块盘&#xff0c;准备扩容…

中国留学生被“虚拟绑架”?AI让电信诈骗更加逼真,我们该怎么识别?

目录 AI让电信诈骗如虎添翼 如何防范冒充熟人的电信欺诈&#xff1f; 近日&#xff0c;一起针对海外留学生群体的新型电信网络诈骗案引发关注。中国驻美国使馆发言人证实&#xff0c;一名疑似遭绑架的中国留学生实际上遭遇了“虚拟绑架”诈骗。 诈骗分子冒充公检法机关、使馆、…

vue通过获取url中的信息登录页面

在主界面获取到url的信息 html <script>let getRequest function () {var url location.href// 从 URL 中提取查询参数部分const queryParamsString url.split(?)[1];// 使用 URLSearchParams 解析查询参数const queryParams new URLSearchParams(queryParamsStrin…

ArcEngine开发arcToolbox中视域分析

(1)简介 (2)文档参考 Viewshed_sa <in_raster> <in_observer_features> <out_raster> {z_factor} {FLAT_EARTH | CURVED_EARTH} {refractivity_coefficient} ParameterExplanationData Type<in_raster>Input raster. Composite Geodataset<in…

通俗易懂的L0范数和L1范数及其Python实现

定义 L0 范数&#xff08;L0-Norm&#xff09; L0 范数并不是真正意义上的一个范数&#xff0c;因为它不满足范数的三角不等式性质&#xff0c;但它在数学优化和信号处理等领域有着实际的应用。L0 范数指的是向量中非零元素的个数。它通常用来度量向量的稀疏性。数学上表示为…

升级项目.Net Framework版本遇到错误

报错信息 Microsoft.Common.CurrentVersion.targets(1229, 5): [MSB3644] 找不到 .NETFramework,Versionv4.5,ProfileClient 的引用程序集。要解决此问题&#xff0c;请为此框架版本安装开发人员工具包(SDK/目标包)或者重新定向应用程序。可在 https://aka.ms/msbuild/develope…

【C语言】通讯录(静态版本+动态版本)思路解析+完整源代码

通讯录 由于代码比较长&#xff0c;为了增加可读性&#xff0c;分成了contact.h&#xff0c;contact.c&#xff0c;test.c&#xff0c;分别用来声明函数或者类型&#xff0c;实现函数功能&#xff0c;测试代码 contact.h 我们希望通讯录具有增加联系人&#xff0c;删除联系人…