Gameobject在整个运动中振动

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gameobject在整个运动中振动相关的知识,希望对你有一定的参考价值。

我有一个GameObject,它从文件中获取位置坐标。此GameObject振动而不是平稳地运动。 (好像来回移动。)

这是提供机芯的代码:

int counter = 0;
void Update()
{

        var maxDistance = speed_* Time.deltaTime;
        var oldPosition = transform.position;
        var newPosition = Vector3.MoveTowards(transform.position, positions[counter], maxDistance);
        var actualDistance = Vector3.Distance(newPosition, oldPosition);
        var distanceRemainder = maxDistance - actualDistance;

        if (distanceRemainder > 0.0001)
        {
            newPosition = Vector3.MoveTowards(newPosition, positions[counter], distanceRemainder);
            counter++;

        }

        transform.localPosition = newPosition;


}

注意:从文件中读取的数据在“位置”数组中(x,y,z坐标)。

当我在变量maxDistance中降低300f值时,振动停止并且运动变得更加流畅。但是,Gameobject的速度也在减慢。如何确保快速平稳的运动?

答案

这是由于您将distanceRemainder用作maxDistanceDelta,我认为这是不正确的,如果要平滑移动,应将其乘以Time.deltaTime,然后尝试:

newPosition = Vector3.MoveTowards(newPosition, positions[counter], distanceRemainder*Time.deltaTime);

或简单地声明速度变量并执行:

newPosition = Vector3.MoveTowards(newPosition, positions[counter], speed*Time.deltaTime);

以上是关于Gameobject在整个运动中振动的主要内容,如果未能解决你的问题,请参考以下文章

数学建模MATLAB应用实战系列(100)-谈谈小球单摆实验应用案例(附MATLAB代码)

Unity3DUnity 游戏画面帧更新 ( 游戏物体 GameObject 移动 | 借助 Time.deltaTime 进行匀速运动 )

matlab 多普勒效应产生振动信号和处理

如何将这个 Objective-C 代码片段写入 Swift?

自定义view实现阻尼效果的加载动画

北航成果波耳共振仪数据可视化与精确化探究