【发布时间】:2021-08-07 15:53:33
【问题描述】:
由于我使用的是 rb.movepos,它没有通过拖动进行平滑处理,所以我尝试重用我拥有的 lerp 代码。这是代码:
if (HorizontalMov == 0 && VerticalMov == 0 || rb.transform.position.x == 0 && rb.transform.position.y == 0 && rb.transform.position.z == 0)
{
rb.transform.position = Vector3.Lerp(rb.velocity, new Vector3(0, rb.transform.position.y, 0), Time.deltaTime * slowDownSpeed);
}
if(HorizontalMov > 0 && VerticalMov > 0 || rb.transform.position.x > 0 && rb.transform.position.y > 0 && rb.transform.position.z > 0)
{
rb.transform.position = rb.transform.position;
}
问题是,一开始我的家伙会无限上下弹跳并且可以移动,然后在松开控件后,他会迅速回到 og 位置。
【问题讨论】:
-
在 if 语句中使用 debug。我认为您需要将 HorizontalMov == 0 && VerticalMov == 0 替换为 HorizontalMov == 1 && VerticalMov ==1。我们需要看完整的代码
-
我无法显示所有内容,因为它太长了,我也使用了你的修复程序,现在它根本没有 lerp
标签: c# visual-studio unity3d 3d rigid-bodies