当前位置: 首页 > news >正文

unity关于匀速移动某些值的方法

可能很多人会用到Verctor3.Lerp、Mathf.LerpUnclamped等等
这种其实不是匀速
看一下这个整体差不多的逻辑

  public static float Lerp(float a, float b, float t){return   a + (b - a) * t;};

这个逻辑就是,从a值到b值,返回一个a值加(b值-a值)百分比t的值给你。。。写完发现有点白给。
如果不理解我举个例子
我在原点出发,我坐标是a = 0,我要去 b = 10米的地方(终点)
t值是1
代入公式 (b - a) * t 《转换到右边》 (10-0)*1 = 10米
然后就是 a + (b - a) *t 《转换到右边》 0+10 = 10米

结果返回10 = b,我瞬移到了终点(结束)

t值是0.5f
代入公式 (b - a) *t 《转换到右边》(10-0)*0.5f = 5米
然后就是 a + (b - a) *t 《转换到右边》 0+5 = 5米

结果返回5 != b,此时我的a变成5,第二帧继续下面(为什么a变成5,不知道的翻到最底下的扩展)

代入公式 (b - a) *t 《转换到右边》(10-5)*0.5f = 2.5米
然后就是 a + (b - a) *t 《转换到右边》 5+2.5 = 7.5米

结果返回7.5 != b,此时我的a变成7.5,第三帧继续下面

代入公式 (b - a) *t 《转换到右边》(10-7.5)*0.5f = 1.25米
然后就是 a + (b - a) *t 《转换到右边》 7.5+1.25= 8.75米

结果返回8.75 != b,此时我的a变成8.75,第四帧继续,a会一直逼近b=10的值
这能理解了吧,如果还不能理解就再看多几遍
如果还看多几遍还看不懂就评论区告诉我哦 ^ _ ^ (你敢,我四十米的)

t值是0
代入公式 (b - a) *t 《转换到右边》(10-0)*0 = 0米
得到的永远是0,所以不会变化

扩展:为什么a变成5,你可以理解成是一个迭代的方法,如下

   public  void Lerp(ref float a, float b, float t){a = a + (b - a) * t;if(a!=b){Lerp(ref  a,b,t);}}

好了,学了上面这个的Lerp的原理,我们就可以吃正餐了

实现匀速变化值的方法,或者匀速移动的方法
1、自己写一个协程,定义个时间或者每次变化的插值
2、用dotween,我就是为了讲这个
在这里插入图片描述
这个是官方的方法,如果不会可以参照我下面的代码
我用DOTween.To(()=> myFloat, x=> myFloat = x, 52, 1);来做实战例子

    RightBtn.onClick.AddListener(() =>{if (CurrentPage > 0){CurrentPage--;//页数(我这里做的是一个匀速翻页的功能)targetNormalizedPosition = CurrentPage / (Pages - 1f);//目标点DOTween.To(()=> scrollrect.horizontalNormalizedPosition, x =>{scrollrect.horizontalNormalizedPosition = x;//这里将x的值 赋值 到我要移动的scrollrect组件 的坐标上}, targetNormalizedPosition, 1);}});

对比DOTween.To(()=> myFloat, x=> {myFloat = x}, 52, 1);
简化DOTween.To(()=> 目标值, x=> {实现逻辑}, 终值, 时间);

还有不理解在评论区说一下哦

相关文章:

unity关于匀速移动某些值的方法

可能很多人会用到Verctor3.Lerp、Mathf.LerpUnclamped等等 这种其实不是匀速 看一下这个整体差不多的逻辑 public static float Lerp(float a, float b, float t){return a (b - a) * t;};这个逻辑就是,从a值到b值,返回一个a值加(b值-a值&…...

解决VScode下载太慢的问题记录

最近突然想重新下载vscoded便携免安装版,发现下载很慢,于是乎查询一下,以便记录 下载地址 VScode官方网站: https://code.visualstudio.com/ 根据个人的需求选择下载,页面加载下载需要等一会, 然后就会…...

Gitlab服务器备份恢复及系统升级

居安思危,思则有备,有备无患。 基于此,申请了一个测试服务器,准备先安装同版本服务器,按照最新的数据进行恢复,然后再将现在的服务器升级到Gitlab的最新版本,记录一下完整的过程,以…...

docker入门讲解

目录 第 1 章 Docker核心概念与安装 为什么使用容器? Docker是什么 Docker设计目标 Docker基本组成 容器 vs 虚拟机 Docker应用场景 Linux 安装 Docker 第 2 章 Docker镜像管理 镜像是什么 镜像从哪里来? 镜像与容器联系 镜像常用管理命令 镜像存储核心技术:联…...

【Matlab】基于卷积神经网络的数据回归预测(Excel可直接替换数据))

【Matlab】基于卷积神经网络的数据回归预测(Excel可直接替换数据) 1.模型原理2.数学公式3.文件结构4.Excel数据5.分块代码6.完整代码7.运行结果1.模型原理 基于卷积神经网络(Convolutional Neural Network,CNN)的数据回归预测是一种常见的机器学习方法,适用于处理具有空…...

在Springboot集成Activiti工作流引擎-引入、调用,测试【基础讲解】

工作流 通过计算机对业务流程自动化执行管理 他主要解决的是使在多个参与者之间按照某种“预定义规则”自动进行传递稳定 信息或任务的过程 通俗来讲 业务上一个玩着的审批流程 比如请假,出差 外出采购等 工作流引擎就是来解决流程问题的 提高我们的工作效率 如果…...

Java书签 #解锁MyBatis的4种批量插入方式及ID返回姿势

1. 今日书签 项目开发中,我们经常会用到单条插入和批量插入。但是实际情况可能是,项目初期由于种种原因,在业务各处直接使用单条插入SQL进行开发(未开启批处理),在后面的迭代中,系统性能问题渐…...

在react项目中如何引入国际化

react-i18next 在 React 项目中引入国际化(Internationalization,简称 i18n)可以使用第三方库来实现。其中,最常用且流行的国际化库是 react-i18next,它基于 i18next 实现,提供了方便易用的国际化功能。下…...

spring学习笔记十三

注解实现管理第三方Bean和为第三方Bean注入资源 1、添加pom坐标 <dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.16</version></dependency> 2、SpringConfig配置类 Configuratio…...

react native 本地存储 AsyncStorage

An asynchronous, unencrypted, persistent, key-value storage system for React Native. Async Storage 只能用来储存字符串数据&#xff0c;所以为了去储存object类型的数据&#xff0c;得先进行序列化&#xff08;JSON.stringify()&#xff09;当你想要使用数据的时候&…...

Postgresql数据库中的时间类型汇总

PostgreSQL数据库有以下几种时间类型 1 日期 date&#xff1a;表示日期&#xff0c;格式为YYYY-MM-DD。 2 时间 time&#xff1a;表示时间&#xff0c;格式为HH:MI:SS。 3 日期和时间 timestamp&#xff1a;表示日期和时间&#xff0c;格式为YYYY-MM-DD HH:MI:SS。 4 带…...

算法刷题Day 51 最佳买卖股票时机含冷冻期+买卖股票的最佳时期含手续费

Day 51 动态规划 309. 最佳买卖股票时机含冷冻期 关键是要画出状态转移图 然后根据状态转移图来写状态转移方程 class Solution { public:int maxProfit(vector<int>& prices) {int len prices.size();vector<vector<int>> dp(len, vector<int&g…...

编程导航算法村 第五关 | 白银挑战

编程导航算法村 第五关 | 白银挑战 用栈实现队列 LeetCode 232题 class MyQueue {private Stack<Integer> stack; // 保存private Stack<Integer> tempstack; // 临沭队列public MyQueue() {stack new Stack<>();tempstack new Stack<>();}public…...

(十六十七)时序数据库是怎么存储用户名和密码的从InfluxDB OSS迁移数据

以下内容来自 尚硅谷&#xff0c;写这一系列的文章&#xff0c;主要是为了方便后续自己的查看&#xff0c;不用带着个PDF找来找去的&#xff0c;太麻烦&#xff01; 第 16 章 时序数据库是怎么存储用户名和密码的 1、InfluxDB内部自带了一个用Go语言写的BlotDB&#xff0c;Blo…...

5分钟开发一个AI论文抓取和ChatGPT提炼应用

5分钟开发一个AI论文抓取和ChatGPT提炼应用 第一步 点击“即刻开始” -选择模板 python -修改标题 “AIPaper”&#xff0c;项目标识“AIPaper”&#xff0c;点击“创建项目” 第二步 在编程区域右侧AI区域&#xff0c;输入框输入以下内容&#xff1a; 请根据下面的内容&…...

SK5代理与网络安全:保障爬虫隐匿性与HTTP连接稳定性

一、SK5代理简介 SK5代理&#xff0c;即socks5代理&#xff0c;是一种网络协议&#xff0c;用于在客户端和服务器之间进行数据传输。相比其他代理协议&#xff0c;如HTTP代理&#xff0c;SK5代理具有更高的性能和安全性&#xff0c;支持TCP和UDP连接&#xff0c;并可以处理更复…...

基于4G网络的嵌入式设备远程升级系统设计与实现(学习一)

摘要 随着无线通信技术的不断更新发展&#xff0c;嵌入式设备的联网应用领域得以大规模扩大&#xff0c;远程升级功能成为产品开发中必不可少的一部分。 本文对嵌入式设备远程升级进行了研究&#xff0c;在不改变设备硬件集成度基础上&#xff0c;设计实现了分离式升级的远程…...

陪诊小程序软件|陪诊系统定制|医院陪诊小程序

开发一个陪诊小程序需要投入一定的费用&#xff0c;具体金额会因项目的复杂程度、功能需求和推广政策而有所差异在投入资金之前&#xff0c;建议进行市场调研和需求分析&#xff0c;制定出合理的预算&#xff0c;并选择专业的开发团队进行合作&#xff0c;那么开发陪诊小程序需…...

[数据集][目标检测]空中飞鸟目标检测数据集VOC格式4955张

数据集名称&#xff1a;空中飞鸟数据集VOC-4955张 数据集制作单位&#xff1a;未来自主研究中心(FIRC) 图片数量(jpg文件个数)&#xff1a;4955 标注数量(xml文件个数)&#xff1a;4955 标注类别数&#xff1a;1 标注类别名称:["bird"] 每个类别标注的框数&#xff1…...

安徽现货黄金代理请看这篇

持续两三年的新冠疫情&#xff0c;令全球经济遭受不同程度的打击&#xff0c;很多传统的行业更是重灾区&#xff0c;当中不少从业多年的朋友表示虽然看不清前进&#xff0c;但也不敢随便转行&#xff0c;如果那么有一份这样的工作&#xff0c;既不用他们离开本职&#xff0c;也…...

Claude Code源码阅读分享

Claude Code 源码阅读分享 链接: https://pan.baidu.com/s/1oSUWD11Yjrn5_pVVfK8Y9g?pwdv4ta Quick Start Option 1: Use with Claude Code (Recommended) # Copy agents to your Claude Code directory cp -r agency-agents/* ~/.claude/agents/# Now activate any agent in …...

LaTeX2Word-Equation:学术公式无缝迁移的终极解决方案

LaTeX2Word-Equation&#xff1a;学术公式无缝迁移的终极解决方案 【免费下载链接】LaTeX2Word-Equation Copy LaTeX Equations as Word Equations, a Chrome Extension 项目地址: https://gitcode.com/gh_mirrors/la/LaTeX2Word-Equation 在学术写作与科研工作中&#…...

别再死记硬背了!用Verilog手写一个四位加减法器,帮你彻底搞懂补码和逻辑门

从逻辑门到补码运算&#xff1a;Verilog四位加减法器的硬件思维解密 记得第一次在《数字逻辑》课上听到"补码"这个概念时&#xff0c;我和大多数同学一样满脸困惑——为什么计算机要用这么绕的方式处理负数&#xff1f;直到亲手用Verilog实现了一个四位加减法器&…...

LangChain串联DeepSeek时,如何用自定义OutputParser解决‘思考污染’问题?

LangChain串联DeepSeek时如何用自定义OutputParser解决"思考污染"问题 当我们在LangChain框架中串联使用具备"思考过程"输出的推理模型&#xff08;如DeepSeek&#xff09;时&#xff0c;经常会遇到一个棘手的问题&#xff1a;前序节点的思考标签会污染后续…...

OpenClaw+Qwen3-14b_int4_awq自动化写作:从资料收集到排版发布

OpenClawQwen3-14b_int4_awq自动化写作&#xff1a;从资料收集到排版发布 1. 为什么需要自动化写作工作流 作为一个技术博主&#xff0c;我经常面临这样的困境&#xff1a;明明有大量想分享的内容&#xff0c;却总被繁琐的写作流程拖累。从资料收集、大纲梳理到内容生成和格式…...

CasRel在企业搜索中的应用:构建结构化语义索引提升召回质量

CasRel在企业搜索中的应用&#xff1a;构建结构化语义索引提升召回质量 1. 引言&#xff1a;当搜索遇到瓶颈 你有没有遇到过这种情况&#xff1a;在公司内部的知识库里搜索“2024年第三季度华东区的销售数据”&#xff0c;结果返回了一堆包含“销售”、“数据”、“华东”等关…...

cool-admin(midway版)数据库索引维护:高级实践指南

cool-admin(midway版)数据库索引维护&#xff1a;高级实践指南 【免费下载链接】cool-admin-midway &#x1f525; cool-admin(midway版)一个很酷的后台权限管理框架&#xff0c;模块化、插件化、CRUD极速开发&#xff0c;永久开源免费&#xff0c;基于midway.js 3.x、typescri…...

SDMatte开源大模型部署:本地化AI抠图替代PS,支持透明物体精细提取

SDMatte开源大模型部署&#xff1a;本地化AI抠图替代PS&#xff0c;支持透明物体精细提取 1. 产品概述 SDMatte是一款专注于高质量图像抠图的AI模型&#xff0c;特别擅长处理传统抠图工具难以应对的复杂场景。与Photoshop等传统工具相比&#xff0c;SDMatte通过深度学习技术实…...

OpenClaw替代方案:当Qwen3-4B不可用时降级策略

OpenClaw替代方案&#xff1a;当Qwen3-4B不可用时降级策略 1. 为什么需要降级策略 上周三凌晨3点&#xff0c;我的OpenClaw自动化脚本突然停止了工作。原本定时执行的周报生成任务卡在了模型调用环节——Qwen3-4B服务因网络波动暂时不可用。这次意外让我意识到&#xff1a;依…...

根据给定文本内容,适合的标题可以是:“‘三泵排水电气控制系统及组态设计的梯形图、接线图原理图”...

自动排水控制设计3泵排水三泵排水电气控制系统排水组态 我们主要的后发送的产品有&#xff0c;带解释的梯形图接线图原理图图纸&#xff0c;io分配&#xff0c;组态画面每逢暴雨天&#xff0c;物业师傅盯着排水泵的手机都要刷出火星子——生怕哪台泵罢工&#xff0c;地下室直…...