首页 > 解决方案 > unity 对象不平滑移动直线

问题描述

我有生成的框InstantiateQuaternion.identity名称为ABCDE,大小相同,彼此相邻,没有空格。示例:https ://imgur.com/TUm74DM

在这 5 个启用了重力模式的盒子的顶部有一个球体。当球体在从 A 到 E 的盒子上沿直线移动时,有时它在图像中的这些X点处不会平滑移动。我不明白为什么以及如何解决它。

代码:

for (int i = 0; i< 5; i++) spawnPath();

public void spawnPath()
{
    currentBox = Instantiate(box,currentBox.transform.GetChild(0).transform.GetChild(0).position,
       Quaternion.identity);
}

位置:https ://imgur.com/Ta6fKCs

更新:

位置:https ://imgur.com/qllXdiW 请注意,这些盒子排列得很完美。

Shpere运动:

public Rigidbody rb; void FixedUpdate(){ rb.AddForce(0, 0, forwardForce * Time.deltaTime); }

标签: c#unity3dgame-physics

解决方案


这可能有几个原因。一种是盒子没有正确放置。查看您的代码,它将生成彼此重叠的框,因为每次迭代的位置都是相同的。

在盒子完美排列的情况下,这也可能是由于离散碰撞检测引起的。Discrete 仅在移动后解决碰撞。这意味着当重力更新时,它可能会注意到与其中一个角的碰撞并错误地解决它。


推荐阅读