首页 > 解决方案 > Unity 移动平台刚体之间的交互

问题描述

我有一个使用它的 Reigidbody 不断移动平台的协程,这是代码:

private IEnumerator MovePlatform(Vector3 startPosition, Vector3 endPosition)
{
    float i = 0;
    float rate = 1f / speed;

    while (i < 1f)
    {
        i += Time.deltaTime * rate;
        rigidbody.MovePosition(Vector3.Lerp(startPosition, endPosition, i));

        yield return null;
    }

    StartCoroutine(MovePlatform(endPosition, startPosition));
}

rigidbody.MovePosition如果我希望我的刚体进行交互,这是移动平台的正确方法。

但问题是:

如果平台垂直移动,则平台顶部的物体在移动时会不断跳跃。

如果平台水平移动,则平台顶部的物体会前后滑动。显然这不是我希望他们做的。我希望平台上的物体保持静止。

我尝试了什么:

如何实现移动平台与物体之间自然良好的交互?

PS PLEASENOPARENT方法谢谢

标签: unity3d

解决方案


推荐阅读