Unity中关于Lerp()方法的使用

在Unity中,Lerp()方法用于在两个值之间进行线性插值。

它的语法有:

public static float Lerp(float a, float b, float t);//在两个float类型的值a和b之间进行线性插值
public static Vector2 Lerp(Vector2 a, Vector2 b, float t);//在两个Vector2类型的向量a和b之间进行线性插值
public static Vector3 Lerp(Vector3 a, Vector3 b, float t);//在两个Vector3类型的向量a和b之间进行线性插值
public static Vector4 Lerp(Vector4 a, Vector4 b, float t);//在两个Vector4类型的向量a和b之间进行线性插值
public static Quaternion Lerp(Quaternion a, Quaternion b, float t);//在两个Quaternion类型的旋转a和b之间进行线性插值
public static Color Lerp(Color a, Color b, float t);//在两个Color类型的颜色a和b之间进行线性插值。
public static void Lerp(RectTransform a, RectTransform b, float t);//在两个RectTransform对象之间进行插值
public static float LerpAngle(float a, float b, float t);//在两个角度之间进行插值
public static float LerpUnclamped(float a, float b, float t);//与Lerp()方法类似,但不会对t进行限制,可以超出0到1的范围。

这些方法的参数含义是:a:起始值;b:目标值;t:插值,取值范围为0-1。

使用方法大抵如下:

/*使用两个浮点数进行插值*/
float startValue = 0.0f;
float endValue = 10.0f;
float t = 0.5f; // 插值因子,范围在0到1之间float result = Mathf.Lerp(startValue, endValue, t);/*使用两个Vector3进行插值*/
Vector3 startPosition = new Vector3(0.0f, 0.0f, 0.0f);
Vector3 endPosition = new Vector3(10.0f, 5.0f, 0.0f);
float t = 0.5f;Vector3 result = Vector3.Lerp(startPosition, endPosition, t);/*使用两个颜色进行插值*/
Color startColor = Color.red;
Color endColor = Color.blue;
float t = 0.5f;Color result = Color.Lerp(startColor, endColor, t);

明白了这么多,重点还是实际的应用。根据经验,概况来说就是为了使值在两个变化值之间进行平滑的过渡。

比如这些用法:

1、平滑移动物体:

public Transform startTransform;
public Transform endTransform;
public float speed = 1.0f;private float t = 0.0f;void Update()
{t += speed * Time.deltaTime;transform.position = Vector3.Lerp(startTransform.position, endTransform.position, t);
}

2、颜色渐变效果:

public Renderer renderer;
public Color startColor;
public Color endColor;
public float duration = 1.0f;private float t = 0.0f;void Update()
{t += Time.deltaTime / duration;renderer.material.color = Color.Lerp(startColor, endColor, t);
}

等等。

事实证明,插值还是很好用的。

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

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

相关文章

【Maven教程】(十):使用 Hudson 进行持续集成—— 从Hudson的安装到任务创建 ~

Maven 使用 Hudson 进行持续集成 1️⃣ 持续集成的作用、过程和优势2️⃣ Hudson 简介与安装3️⃣ 准备 Subversion 仓库4️⃣ Hudson 的基本系统设置5️⃣ 创建 Hudson 任务5.1 Hudson 任务的基本配置5.2 Hudson 任务的源码仓库配置5.3 Hudson 任务的构建触发配置5.4 Hudson …

debian 添加开机启动项

有的时候,经常有自己需要的程序,官方并没有提供添加开机启动的方法,但我们却需要让他们开机启动(比如探针类、飞机类、服务类程序等)。可能有的人会说,可以使用 /etc/rc.local 啊。是可以使用这个&#xff…

AI:86-基于深度学习的人体姿态估计与运动分析

🚀 本文选自专栏:人工智能领域200例教程专栏 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的代码,详细讲解供大家学习,希望可以帮到大家。欢迎订阅支持,正在不断更新中,…

Leetcode—2469.温度转换【简单】

2023每日刷题(二十六) Leetcode—2469.温度转换 实现代码 /*** Note: The returned array must be malloced, assume caller calls free().*/ double* convertTemperature(double celsius, int* returnSize) {double* ans (double *)malloc(sizeof(do…

Springboot+vue的高校办公室行政事务管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频: Springbootvue的高校办公室行政事务管理系统(有报告)。Javaee项目,springboot vue前后端分离项目 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。…

某XX自考小程序的AES加密分析

前言 主要是报了自考在这个小程序上面做题,就研究了一下这个接口本文仅供学习交流使用,请勿随意传播。如有侵犯你的权益及时联系我删除。 一、抓包分析打开小程序,打开devtools 工具,这里就不啰嗦,直接上过程。 点击…

入选《人工智能领域内容榜》

2023-11-13 入选《人工智能领域内容榜》31 C# OpenCvSharp DNN HybridNets 同时处理车辆检测、可驾驶区域分割、车道线分割

maven 私有仓库配置

1.整体库信息 2.配置阿里云库 &#xff08;可以配置多个库&#xff0c;再引用代理库&#xff09; 3.建立自己的 发布&#xff0c;快照库 4.建立自由的公共库- 引用所有需要的库 5.maven setting 中配置 用户名密码 <server><id>mv-releases</id><usernam…

Java_常用API

API(全称Application Programming Interface:应用程序编程接口) String 常用方法 注意事项 每一次试图改变字符串对象都产生了新的字符串对象 ArrayList 常用方法 ATM系统 01系统架构搭建、欢迎页设计 02开户功能实现 03登录功能实现 04操作页展示、查询账户、退出账户 05存…

输入一个url后,会发生什么事?

Internet上的每一个网页都具有一个唯一的名称标识&#xff0c;通常称之为URL&#xff08;Uniform Resource Locator,统一资源定位器&#xff09;。它是www的统一资源定位标志&#xff0c;简单地说URL就是web地址&#xff0c;俗称“网址”。 所以当我们在浏览器上输入一个url后&…

工作十年+的测试应该具备什么能力?

大概是2014年的时候&#xff0c;我开始接触面试工作&#xff0c;就是从应聘者转为面试官&#xff0c;记得印象深刻的是面试了一位做了8年的测试。对方气场很足&#xff0c;嗯&#xff0c;毕竟那时的我还只是一个3、4年经验的小测试&#xff0c;相反&#xff0c;印象深刻的并不是…

TikTok影响力经济:解锁社交媒体的商业机遇

社交媒体平台的崛起改变了我们与世界互动的方式&#xff0c;而TikTok作为其中的一员&#xff0c;已经成为全球范围内的现象。这个短视频应用不仅让用户在几秒钟内分享创意和娱乐&#xff0c;还为企业和创作者提供了巨大的商业机会。本文将深入探讨TikTok的影响力经济&#xff0…

【Go入门】struct类型

【Go入门】struct类型 struct Go语言中&#xff0c;也和C或者其他语言一样&#xff0c;我们可以声明新的类型&#xff0c;作为其它类型的属性或字段的容器。例如&#xff0c;我们可以创建一个自定义类型person代表一个人的实体。这个实体拥有属性&#xff1a;姓名和年龄。这样…

Ubuntu 20.04编译Chrome浏览器

本文记录chrome浏览器编译过程&#xff0c;帮助大家避坑qaq 官网文档&#xff1a;https://chromium.googlesource.com/chromium/src//main/docs/linux/build_instructions.md 一.系统要求 一台64位的英特尔机器&#xff0c;至少需要8GB的RAM。强烈推荐超过16GB。至少需要100…

基于Matlab+ AlexNet神经网络的动物识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 基于Matlab和AlexNet神经网络的动物识别系统可以用于自然图像识别等场景&#xff0c;以下是一个基本的介绍设计步骤…

项目笔记记录

一、node下载版本报错&#xff1a;npm install --legacy-peer-deps 二、Scheduled: 任务自动化调度 Scheduled 标记要调度的方法的注解&#xff0c;必须指定 cron&#xff0c;fixedDelay或fixedRate属性之一 fixedDelay&#xff1a;固定延迟 延迟执行任务&#xff0c;任务在…

stm32单片机无法驱动sg90舵机

如果使用调试器调试sg90的时候&#xff0c;也许会遇到舵机没有反应的情况&#xff0c;这个时候可以把调试器断开&#xff0c;直接使用usb线接到单片机上面&#xff0c;舵机就会开始动&#xff0c;需要注意的是3.3V也是可以驱动sg90的&#xff0c;虽然标的是5V

Linux 图形化界面

Part I: Linux 系统概述 什么是 LinuxLinux 的历史和版本Linux 发行版介绍Linux 的优缺点 Part II: Linux 安装与配置 5. 硬件要求与准备工作 6. 安装 Linux 操作系统 7. Linux 系统初始化设置 8. Linux 系统更新与升级 9. Linux 基础配置 Part III: Linux 命令行 10. Linux…

论文笔记:Deep Trajectory Recovery with Fine-Grained Calibration using Kalman Filter

TKDE 2021 1 intro 1.1 背景 用户轨迹数据对于改进以用户为中心的应用程序很有用 POI推荐城市规划路线规划由于设备和环境的限制&#xff0c;许多轨迹以低采样率记录 采样的轨迹无法详细说明物体的实际路线增加了轨迹中两个连续采样点之间的不确定性——>开发有效的算法以…

高频SQL50题(基础班)-4

文章目录 主要内容一.SQL练习题1.1789-员工的直属部门代码如下&#xff08;示例&#xff09;: 2.610-判断三角形代码如下&#xff08;示例&#xff09;: 3.180-连续出现的数字代码如下&#xff08;示例&#xff09;: 4.1164-指定日期的产品价格代码如下&#xff08;示例&#x…