Menu
CoddyTech

回顾:子弹时间

本课属于 Coddy Unity 学习旅程的“打造真正的游戏”单元。第 37 课,共 60 课。

这一章让游戏时间冻结、变慢并重新开始。子弹时间将这些效果结合起来:更小的 Time.timeScale、与之匹配的物理步长,以及一个统计实际秒数的计量器。

challenge icon

挑战

中等

为游戏加入子弹时间。

  1. 在 Update() 中,当按住 Space 且 focus > 0f 时:将时间缩放设为 slowScale,物理步长设为 0.02f * slowScale,并让 focus 每经过 1 秒实际时间减少 1,但不低于 0。
  2. 否则,将缩放设为 1f,步长设为 0.02f;松开 Space 时,让 focus 每经过 1 秒实际时间恢复 recharge,最多恢复到 maxFocus。
  3. 然后设置 focusBar.fillAmount = focus / maxFocus;

按“开始”,然后按住 Space:雨会变慢。然后点击“检查”。

亲手试试

using UnityEngine;
using UnityEngine.UI;

public class BulletTime : MonoBehaviour
{
    public float slowScale = 0.2f;
    public float maxFocus = 2f;
    public float recharge = 0.5f;
    public Image focusBar;

    float focus;

    void Start()
    {
        focus = maxFocus;
    }

    void Update()
    {
        // 按住 Space 且还有剩余专注值时启用子弹时间,否则恢复正常时间,最后更新进度条
    }
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

打造真正的游戏中的所有课

自己练习: Unity 在线编辑器