如何在Unity3D中获得平滑的慢动作

Ssi*_*iro 4 unity-game-engine unityscript

我试图在正在制作的游戏中获得慢动作,但它看起来确实很滞后。我使用 Unity 提供的标准资源中的 FPS 控制器。我将以下脚本附加到它:

function Update () 
{
    if (Input.GetKeyDown ("q"))
    {
        Time.timeScale = 0.5;
    }

    if (Input.GetKeyDown ("e")) 
    {
        Time.timeScale = 2.0;
    }

    if (Input.GetKeyDown ("t")) 
    {
        Time.timeScale = 1.0;
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道这是一个与此类似的问题http://answers.unity3d.com/questions/39279/how-to-get-smooth-slow-motion.html

但对该问题给出的修复不起作用。我尝试向其添加刚体并将插值设置为插值,但它没有执行任何操作。(我从“使用重力”中删除了勾号,因为角色开始飞行)。我是 Unity 和脚本方面的新手,所以请对我宽容点。

谢谢。

g8m*_*uan 6

您还应该更改 Time.fixedDeltaTime :

function Update () {
   if (Input.GetKeyDown ("q")){
      Time.timeScale = 0.5;
      Time.fixedDeltaTime = 0.02F * Time.timeScale;
   }
}
Run Code Online (Sandbox Code Playgroud)

要使其再次恢复正常运动,您应该调用这两行

      Time.timeScale = 1;
      Time.fixedDeltaTime = 0.02F * Time.timeScale;
Run Code Online (Sandbox Code Playgroud)