问题标签 [lerp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1820 浏览

c# - 在 Unity 中创建颜色循环效果?

我目前正在 Unity 中开发游戏,但遇到了一个小问题。我正在尝试生成彩虹色效果,类似于有人在马里奥卡丁车或超级马里奥中捕捉特定游戏对象上的星星时发生的情况。基本上所有附加到脚本 InteractControl 的预制件实例都处于活动状态(循环或 lerp 槽连续 5 种不同颜色),而变量 timeLeft > 0 和 score > 10 然后返回到原始值当 timeLeft < 0 时它们的颜色。

我已经尝试了多种方法,包括使用协程,并多次重置它的颜色。仅当在 timeleft > 0 if 语句为 true 的情况下设置了 bool 的值或当前试图调整颜色时,才创建一个新方法并允许访问它,但这一切似乎都不起作用。尝试制作动画也可能是一种选择,但是它太复杂了,无法让不同颜色的对象与我原来的尺寸匹配,所以我真的很想通过脚本来改变它。

这些是相关脚本的相关部分:

0 投票
1 回答
377 浏览

c# - Unity3D:时间尺度增加时,Mathf Lerp 太快

我有一个由 Mathf Lerp 控制的填充量组件的图像。问题是,当时间尺度增加时,完成 Mathf Lerp 函数的时间比预期的要短。

当时间刻度等于 2 时,该功能应该花费一半的时间来完成,但它需要的时间会更少。知道为什么吗?

0 投票
1 回答
387 浏览

c# - Unity - 将多个游戏对象从当前位置移动(随机播放)到新的目标位置

我正在尝试做一个洗牌功能,所以我可以改变多个GameObjects.

我在一个圆圈中有多个“字母”(GameObjects),当我单击“随机播放”时,我只需要重新排列它们的位置,但显示字母移动到它的新位置。

在此处输入图像描述

我试过了:Vector3.Lerp(startPosition, targetPosition, Time.time/2)

或者

Vector3.MoveTowards(startPosition, targetPosition, Time.time/2)

但它不能正确移动。

我设法使用以下方法进行运动:

Vector3 tempPosition = object1.transform.position; object1.transform.position = object2.transform.position; object2.transform.position = tempPosition;

但我只能移动 2GameObjects而不显示任何移动。

0 投票
1 回答
132 浏览

c# - How to properly implement multiple Vector3.Lerps in series?

I'm attempting to grow and then shrink a series of gameobjects using two different lerps within a coroutine. Despite the two while loops being functionally identical, the objects will grow but not shrink afterwards, instead remaining at their increased size.

I've substituted hard-coded values for the initial and final sizes, but the problem still persists. I've tested and found that both loops are executing fine, and the program does not get stuck in either loop.

Is there some fundamental misunderstanding I have of the nature of lerps or coroutines?

0 投票
0 回答
31 浏览

javascript - 如何在插值中平滑地从较高值到较低值,反之亦然

我有一个双向旋转的游戏角色。我使用插值来使旋转平滑一点。角度限制为顺时针方向为 0 到 2PI,逆时针方向为 0 到 -2PI。插值在 0 到 +- 2PI 之间的任何值之间都能很好地工作。当玩家从 2PI(6.28...) 转移到 0.1 或 0.1 转移到 -2PI(-6.2..) 时会出现问题,因为 2 个值之间存在很大差距,这会导致旋转有点抖动。如何克服这一点。

0 投票
0 回答
74 浏览

c# - 使用单个时间步的位置数据来 Lerp 变换位置?

我有一个大型数据集,其中包含以 0.1 秒为间隔的车辆位置数据,我一直在尝试获取这些数据并沿着这些位置平滑地为游戏对象设置动画。

我尝试过使用 AnimationCurves 并为类似于此的单个轴添加关键帧

但是我不知道如何将分秒位置数据转换为 AnimationClip 的正确值。

我还尝试使用类似于这样的协程循环位置:

然而,因为 for 循环独立于时间运行,它在另一个结束之前启动协程。任何有关如何解决此问题的帮助将不胜感激。

0 投票
1 回答
387 浏览

unity3d - Unity 3d 对象的 3d 四元数旋转 Lerp

我正在开发一个 Unity 项目。有一个汽车雨刷器,我想旋转它,当我按下“雨刷器开启”时,雨刷器开始从 0,0,0 旋转到 0,0,-45 并开始转动。但是当我按下“雨刷关闭”时,雨刷必须旋转回 0,0,0。例如,如果当前雨刷旋转为 0,0,-20,并且我按下“雨刷切换关闭”键,则雨刷必须向 0,0,0 旋转。此外,如果我再次按下“wipers toggle on”,则雨刷必须开始从 0,0,0 旋转到 0,0,-45。现在,情况是雨刷器正在旋转,但是当我按下“雨刷器关闭”时,雨刷器停止在完全相同的当前旋转点,例如(0,0,-30)。当我再次按下“雨刷器开启”时,雨刷器从奇怪的不同旋转点开始。这是我的代码:

0 投票
1 回答
81 浏览

c# - Mathf.PingPong 从 1 到 0

我已经创建了一个从 1 到 0 的 PingPong 助手,但是我很难将其反转,因此值从 1 变为 0。

下面你可以看到我目前正在使用的代码。我也不确定这是否可能。

还有帮手

提前致谢!

0 投票
1 回答
34 浏览

c# - 为什么我的相机使用 lerp 挡在两个位置之间?

我试图制作一个脚本,允许我的相机使用 keyArrows 和 lerp 移动到 4 个不同的位置(前后左右)。

第一个动作效果很好,但是当我击中另一个 KeyArrow 时,我的相机移动了一点,卡在了第一个位置和结束位置之间。

有代码:

你知道这可能是什么问题吗?

0 投票
0 回答
21 浏览

unity3d - 为什么我的 transform.position 出现 NullReference 错误?

我正在制作一个移动相机的脚本,但出现此错误:NullReferenceException: Object reference not set to an instance of an object

但是我的脚本有效,控制台上没有崩溃或只是这个错误,你知道为什么吗?有代码: