基于unity物体定点移动与模拟刹车的细节 GIF 图文详解——线性差值函数以及平滑阻尼的运用和实践(Lerp AND SmoothDamp)

news2024/11/18 19:56:57

在这里插入图片描述


👨‍💻个人主页:@元宇宙-秩沅

hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

本文由 秩沅 原创

收录于专栏 [unity常用API]


⭐相关文章:基础不牢,地动山摇系列 ------ 软硬通吃 unity常用API

⭐相关文章:关于游戏剧情模式中用到的基础简单API

⭐相关文章:控制游戏人物移动的细节到底有多少?

⭐相关文章:坦克炮管旋转发射炮弹(向量基础,射线碰撞,物体实例化)


⭐基于unity实现物体移动与模拟刹车的细节处理⭐

文章目录

  • ⭐基于unity实现物体移动与模拟刹车的细节处理⭐
    • 👨‍💻Lerp(a,b,t) 限制性差值
    • 👨‍💻MoveTowards(a,b,t) 匀速步频
    • 👨‍💻LerpUnclamped(a,b,t)非限制差值
    • 👨‍💻smoothDamp(a,b,v,t)平滑阻尼
    • 👨‍💻结论


所有线性有关的差值函数都运用到物体移动的情况,以下四种是常见且重要的API,他们的区别和用法详解如下。这里主要以二维向量为例子,三维以此类推。

如图: a点物体到b点物体用差值函数进行移动
在这里插入图片描述


👨‍💻Lerp(a,b,t) 限制性差值


文档:Lerp(a,b,t) 限制性差值

gameObject.transform.position = Vector2.Lerp(a.position,b.position ,speed);

  • 场景应用实现

在这里插入图片描述

可以看出使用lerp()用到物体运动身上并不是匀速的,因为此时每一次差值完之后,都是用差值完后的两点距离再进行差值、


  • 向量含义图:

在这里插入图片描述

图中的黑点就是又无数个任意取差值的点 ,范围为(0,1)


  • 应用示意图

在这里插入图片描述

按照差值进行移动,但只只进行一次,所以将其放在update函数里面,实现作用于a向b点移动

如果此时要让其变成匀速只需要让其加上前一次差值过的数值,即可实现匀速移动

  speed += persent * Time.deltaTime;
  gameObject.transform.position =  Vector2.Lerp(a.position,b.position ,speed);
  • 修改代码后的效果图:

在这里插入图片描述


👨‍💻MoveTowards(a,b,t) 匀速步频


文档:MoveTowards(a,b,t)

  • 相比上面MoveToward 也是匀速运动用到较多的函数,并且相较于上面大家可以直接使用movetowards 进行物体的匀速运动
  • 此时的t 作为步频,也可以理解为移动的频率

  • 效果图:
    在这里插入图片描述

在这里当然我将速度从0.01改成了0.05,但是匀速效果还是显而易见的,只是由于电脑原因导致了一下卡帧


👨‍💻LerpUnclamped(a,b,t)非限制差值


文档:LerpUnclamped(a,b,t)

  • 此时就是非限制性差值了,也就是说我们的t可以随便取值,不再是0到1范围内取值,这就意味着它的差值会超过两点本身的距离

  • 向量图:

在这里插入图片描述

  • 效果图

gameObject.transform.position = Vector2.LerpUnclamped (a.position,b.position ,speed);

在这里插入图片描述

此时我将 t 变为1.3 ,这时可以看到物体A 超出了B,原因是差值超过两点本身的距离,之后又和B重合


👨‍💻smoothDamp(a,b,v,t)平滑阻尼


文档:smoothDamp(a,b,v,t)

  • 平滑阻尼,应用于汽车刹车,想象一下汽车刹车,特别是速度快的是不是还要向前摩擦行驶才停下来,效果就是如此
  • v 是速度 ,t 是平滑时间

Vector2 vority = new Vector2(0.1f, 0);
gameObject.transform.position = Vector2.SmoothDamp(a.position,b.position, ref vority ,speed); 、


  • 我将阻尼时间 t = 设为0.1 的效果图

在这里插入图片描述

可以看到阻尼效果


  • 我将阻尼时间 t = 设为0.5 的效果图

在这里插入图片描述

可以看到阻尼时间越长越慢


  • 我将阻尼时间 t = 设为0 的效果图

在这里插入图片描述

可以看到丝毫没有阻尼效果


👨‍💻结论


  • 👍Lerp () 先慢后快
  • 👍moveTowards ()匀速
  • 👍smoothDamp() 模拟制动系统


⭐相关文章:基础不牢,地动山摇系列 ------ 软硬通吃 unity常用API

⭐相关文章:关于游戏剧情模式中用到的基础简单API

⭐相关文章:控制游戏人物移动的细节到底有多少?

⭐相关文章:坦克炮管旋转发射炮弹(向量基础,射线碰撞,物体实例化)


你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!

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

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

相关文章

Arduino与Proteus仿真实例-TFT LCD绘制酷炫曲线图表

TFT LCD绘制酷炫曲线图表 本文将介绍如何在ILI9341 TFT LCD中绘制酷炫曲线图表仿真。 在前面的文章中,对ILI9341的驱动仿真作了详细的介绍,请参考: Arduino与Proteus仿真实例-TFT显示屏(ILI9341驱动器)SPI驱动仿真1、仿真电路原理图 2、仿真代码实现 本次实例使用到如下开…

23种设计模式(一)——单例模式【对象性能】

文章目录意图什么时候使用单例单例模式的实现1、有缺陷的懒汉式2、线程安全、内存安全的懒汉式单例 (智能指针,锁)3、最推荐的懒汉式单例([magic](https://so.csdn.net/so/search?qmagic&spm1001.2101.3001.7020) static )——局部静态变…

Wondershare 有哪些不错的办公软件呢

第一款 Wondershare UniConverter14 Wondershare UniConverter中文学习版(万兴优转)是一款国产全能视频格式转换软件.万兴格式转换器最新版具有音视频格式转换,合并视频,视频压缩,视频编辑,视频录制,视频下载,视频元数据修复,VR视频转换,字幕编辑器,GIF制作,DVD刻录等一站式视…

天线参数介绍

1.天线辐射元件种类图1-1 天线辐射元件种类如图1-1所示,天线辐射元件种类有:电镀偶极子、印刷电路偶极子、裂缝波导、凹口辐射器、矩形贴片辐射器、开口波导等。2、天线参数2.1 天线方向图天线方向图又叫辐射方向图(radiation pattern&#x…

【MySQL基础教程】多表查询

前言 本文为 【MySQL基础教程】多表查询 相关知识,下边将对多表关系,多表查询概述,内连接,外连接,自连接,子查询,多表查询案例等进行详尽介绍~ 📌博主主页:小新要变强 的…

分布式理论协议与算法 第一弹 CAP理论

CAP 理论,也被称为 CAP 协议,指的是在一个分布式系统中,最多只能同时满足「一致性(Consistency)」、「可用性(Availability)」和「分区容错性(Partition tolerance)」这三…

Vue3 中组合式下的侦听器

目录前言:前置代码:创建侦听器停止侦听器watch侦听:对象中的某一个属性变化(需要提供getter函数才行)watch侦听:整个对象watch侦听:如果嵌套属性发生改变,默认是无法执行回调函数的?watch侦听:…

【实战与杂谈】如何复活一个开源网站-游戏王卡片生成器

1. 杂谈 作为一名十多年游戏王玩家,学生时代玩的是PSP和PS2上的游戏,到毕业后使用YGOPRO同步新卡片进行联网对战,再到现在约到线下进行实体卡片游戏。有些卡片价格太贵,因此我们对于这些卡在未购买之前都会自己打印出来暂时游玩…

sec5-属性

1 属性 GObject系统提供属性。属性是由实例保存的值,实例是GObject的后代,它们对其他实例开放。可以通过他们的名字访问他们。 例如,GtkWindow具有"title"、“default-width”、"default-height"等属性。字符串"t…

正经科普:DDos高防ip详解

白衬衫容易发黄, 一般洗衣液很难洗掉, 不少人为此感到头疼, 不妨在洗的时候吃点头痛药。 这边我也不多废话,大家直接看图,高防ip原理如下清洗能力 DDoS高防IP采用BGP链路对接全国各地30家运营商,总防御能力超4T。采用电信云堤近源…

智能优化算法:人工兔优化算法-附代码

智能优化算法:人工兔优化算法 摘要:人工兔优化算法( [Artificial rabbits optimization,RSO)是 Liying Wang等 于 2022 年提出的一种新型元启发式优化算法 。 该算法受来源于自然界中兔子的生存策略的启发,具有寻优能力强&#x…

【2.1】服务拆分--案例Demo

服务拆分--案例Demo服务拆分注意事项:导入服务拆分Demo测试结果:总结知识内容来自于黑马程序员视频教学和百度百科。博主仅作笔记整理便于回顾学习。如有侵权请私信我。 服务拆分注意事项: 比如现在有一个需求,是查询订单&#x…

国产GPU芯片突破重围,迎来新发展,中国崛起的力量

最近,在GPU芯片领域我们终于迎来新进展,有望突破欧美企业垄断,实现完全国产化。高端GPU芯片对科技发展有着重要作用,广泛应用于云上服务、高密度高性能计算等领域,然而绝大部分GPU芯片市场都被英伟达、AMD、微软等国外…

骨传导耳挂式耳机排名前十名,最好的骨传导耳机推荐

挂耳式的骨传导耳机在佩戴时更舒适以及更加牢固,日常在多种场景使用都能完全兼顾。但是最好的骨传导耳机有哪些呢?还不知道如何选择骨传导耳机,可以看看这五款骨传导耳机~ 1、南卡Runner Pro4骨传导蓝牙耳机 ¥1498 选择骨传导耳机…

Kubernetes那点事儿——控制器Deployment

K8s应用程序生命周期管理——控制器Deployment一、部署应用程序流程二、Deployment控制器1、应用升级、弹性伸缩、回滚、删除2、滚动升级、回滚机制3、定义Deployment前言说到K8s程序的生命周期管理我们不得不提到k8s的控制器。其中Deployment是最为常用的controllers&#xff…

Liga妙谈 | 如何快速甄别、高效响应用户反馈?

敏捷开发说要「拥抱变化」,在充满不确定的环境中,唯一不变的正是变化。面对源源不断的市场反馈和需求变更,敏捷团队应该如何平衡「高效迭代」与「响应用户」的关系,既快又好地完成研发任务,交付业务价值? …

FFmpeg 滤镜详解

FFmpeg Filter 1. 概念介绍 在多媒体处理中,术语滤镜(filter)指的是修改未编码的原始音视频数据帧的一种软件工具。 2. 基本原理 ● 在编码前,ffmpeg可以对raw(真实/原)音频和视频使用libavfilter库中的滤镜进行处理。(非压缩…

骨感传导蓝牙耳机怎么样、骨感传导蓝牙耳机有什么特点

在正文开始前,先跟大家说明一下,骨感传导其实就是我们常说的骨传导,两者是相同的意思,只是表达的文字不太一样。我们可以理解为骨感传导耳机骨传导耳机,那既然是这样,骨传导耳机又是利用什么原理传播声音的…

CentOS搭建web服务器,并内网穿透实现公网访问

在web项目中,部署的web站点需要被外部访问,则需要一个媒介,通过把资源放在这个媒介中,再通过所暴露的端口指向这个站点,当外部访问这个媒介所对应的端口时,媒介指向站点,完成访问,像这种类似的媒介,常用的有tomcat容器、Apache等,这边使用Apache来建搭建。 Apache2 是一种流行…

一节摹课丨做会动的电子贺卡,当懂浪漫的成年人

你正在阅读摹客全新内容栏目【一节摹课】。 本栏目会通过一些有趣的、实用的、好看的、新潮的实操案例,分享摹客“设计12”产品矩阵 —— 「1个协作平台2款设计工具」的具体操作妙计! 带大家一步一步地解锁摹客协作、摹客RP、摹客DT中的大小功能。 一…