Unity中的Lerp插值的使用

这篇具有很好参考价值的文章主要介绍了Unity中的Lerp插值的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

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

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

Lerp是什么

        首先看官方的定义

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

参数
Unity中的Lerp插值的使用,Unity问题记录,unity,游戏引擎
返回值

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

如有错误,欢迎指正。文章来源地址https://www.toymoban.com/news/detail-833199.html

到了这里,关于Unity中的Lerp插值的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Unity游戏开发中的常见问题第二卷】AnyState小坑导致动画卡在第一帧

    在使用 Unity 自带的 Animator 时偶然出现的问题,有一个动画是通过 Any State 传递的,然后碰到了一直卡在第一帧的情况,其实是一个设置问题,需要把 Can Transition To Self ,可能也有其他原因导致类似问题的发生,不过感觉这应该是新手常碰的问题了~ 如果你不禁用传输到自身

    2024年02月16日
    浏览(57)
  • 记录一下Unity使用过程中出现的问题

    1.(2022.3.16) 问题:Unity打开已存在的项目时,一直停留在Hold on... Importing assests界面。 原因及解决方案:Unity Hub中项目设置的默认位置带有中文,将其修改为不含中文的路径即可。 (更新) 重新打开又出现类似问题,一使用VS进行脚本编辑时再次出现加载框,尝试先打开V

    2024年02月08日
    浏览(51)
  • Unity物体移动的几种方式与表现(Lerp,SmoothDamp,MoveTowards的区别)

    看看Lerp,SmoothDamp,MoveTowards的区别。 Lerp用于插值,本身不是用于移动的API。但可以和协程配合用于移动。 SmoothDamp用于移动,是阻尼移动,从不超过。 MoveTowards用于移动,是匀速移动,也不会超过。 Lerp最简单的用法如下: 效果是非匀速的(逐渐逼近),可以看到在接近终

    2024年02月03日
    浏览(39)
  • unity卡牌游戏开发记录(2)

    有了卡牌,当然少不了卡组。为了创建一个卡组,首先当然是有一大堆卡。为了一个卡牌库,我原本打算用数据库,不过还是懒了,先用excel撑着先。当然,一开始肯定没多少卡,姑且做个十来张再说。配套的还有对应的ui界面,先做一个先 -------------------------------------------

    2024年03月21日
    浏览(41)
  • unity卡牌游戏开发记录(4)

    咕咕咕,鸽了好久,今天来继续我们的游戏开发 今天实现的内容是把卡牌加入卡组,从文件读取卡组,从卡组删除卡牌,把卡组保存到文件中。 ---------------------------------------------------分割线--------------------------------------------------------------------- 首先是卡牌加入卡组。上一期我

    2024年04月27日
    浏览(35)
  • Unity学习记录:制作双屏垃圾分类小游戏

    要实现的功能 游戏操作 在规定时间内,垃圾通过拖拽进入正确垃圾桶的容器,垃圾在这里消失,飞入第二个屏上对应垃圾桶的位置并实现加分和加时间的效果,垃圾拖拽进入不正确的垃圾桶,垃圾会返回到原来的位置,同时,相应的时间也会减少 胜利和失败的条件: 胜利:

    2024年02月03日
    浏览(54)
  • Blender个人使用记录【导出FBX格式】【导入Unity中出现白模问题(Blender向)】

    以下说明仅用于记录个人使用Blender和Unity时遇到的问题及其解决方法(并不一定适用所有人),通过B站、CSDN、知乎等地方搜索了一系列有关解决模型导入Unity出现白模的问题,发现不少对新手而言讲解的不明白不清楚的,亦或是不实用的。故将自己遇到的问题记录下来以供参

    2024年02月01日
    浏览(76)
  • Unity使用c#开发遇上的问题(一)(c#中无法引入input,双击unity中的c#文件无反应,unity中刚体设置后仍然穿越问题)

    闲着无聊,想用unity编一编小游戏,遇上的坑(一) 我使用的是vs2019,unity版本是2022.1,下载器Hub。 在asset中创建c#脚本移动cube。在写入X,Y偏移量时没有unity引擎的Input函数。 解决方法: 1.首选项中设置中文语言。

    2024年02月07日
    浏览(59)
  • Unity项目转微信小游戏踩坑记录

    1.首先 你需要去他的SDK地址,去下载SDK,并浏览一下相关流程内容       这个SDK现在没有一个长期稳定的版本,基本三天一小更,五天一大更。所以你懂的,更新之前好好看看更新的内容在决定。 2.webgl不支持多线程,Socket,同步加载。如果项目用到比较多的这些内容,工作

    2024年02月09日
    浏览(46)
  • 解决Unity游戏开发使用Visual Studio Enterprise 2022提示未找到目标框架.net framework4.7.1问题

    采用Visual Studio Installer安装Visual Studio Enterprise 2022,安装中勾选游戏下Unity游戏开发。 单个组件中确保勾选.NET Framework 4.7.1目标包 安装位置自定义修改至F盘后使用Visual Studio Enterprise 2022登录,在Unity设置使用Visual Studio Enterprise 2022并打开对应项目文件,提示未找到目标框架.net

    2024年02月10日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包