C# 如何在不降低整个场景速度的情况下降低游戏对象的速度?

C# 如何在不降低整个场景速度的情况下降低游戏对象的速度?,c#,unity3d,C#,Unity3d,我有一个使用物理(重力)的游戏物体球 我确实施加了一些V3力来移动它: ball.GetComponent<Rigidbody>().velocity = ballScript.dir * ballScript.force + vectorHeight; ball.GetComponent().velocity=ballScript.dir*ballScript.force+vectorHeight; 运动很好。但这对球员的移动来说太快了 有没有办法让球慢下来?(只是球,不是整

我有一个使用物理(重力)的游戏物体球

我确实施加了一些V3力来移动它:

 ball.GetComponent<Rigidbody>().velocity = ballScript.dir * ballScript.force + vectorHeight;
ball.GetComponent().velocity=ballScript.dir*ballScript.force+vectorHeight;
运动很好。但这对球员的移动来说太快了

有没有办法让球慢下来?(只是球,不是整个场景)


数学计算似乎不太合适:要放慢速度,我需要增加高度,然后球的运动就不太现实了。

你可以试试这个:

 ball.GetComponent<Rigidbody>().velocity = (ballScript.dir * ballScript.force + vectorHeight)*Time.deltatime;
ball.GetComponent().velocity=(ballScript.dir*ballScript.force+vectorHeight)*Time.deltatime;

ball.GetComponent().velocity=(ballScript.dir*ballScript.force+vectorHeight)*0.5f?你能添加更多的脚本上下文吗?
vectorHeight
的作用是什么?请不要在
Update
中调用
GetComponent
FixedUpdate
,除非您绝对需要。我通常会添加一个“速度”公共字段或序列化私有字段。用它来减缓或加速我的物体的运动。从那里你可以选择增加值或减少值。。。或者将其用作“百分比”。。。I取决于更新中未调用youGetComponent。我可以增加速度。。。但由于物体的反应和物理物体一样,你们不能通过数学来减慢它的速度。想象一个真实世界的网球有一条轨迹:你们不能在不修改它的轨迹的情况下减慢它的速度。@yarek,若你们在太空,你们可以,但上面提到的OP当然使用重力^^速度只计算一次:在击球时,而不是每一帧!