回顾:子弹时间
本课属于 Coddy Unity 学习旅程的“打造真正的游戏”单元。第 37 课,共 60 课。
这一章让游戏时间冻结、变慢并重新开始。子弹时间将这些效果结合起来:更小的 Time.timeScale、与之匹配的物理步长,以及一个统计实际秒数的计量器。
挑战
中等为游戏加入子弹时间。
- 在
Update()中,当按住 Space 且focus > 0f时:将时间缩放设为slowScale,物理步长设为0.02f * slowScale,并让focus每经过 1 秒实际时间减少 1,但不低于 0。 - 否则,将缩放设为
1f,步长设为0.02f;松开 Space 时,让focus每经过 1 秒实际时间恢复recharge,最多恢复到maxFocus。 - 然后设置
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 且还有剩余专注值时启用子弹时间,否则恢复正常时间,最后更新进度条
}
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
打造真正的游戏中的所有课
自己练习: Unity 在线编辑器