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を押していてfocusが残っている間はバレットタイムにし、それ以外は通常の時間に戻してから、バーを更新する
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

本格的なゲームを作るのすべてのレッスン

自分で練習してみよう: Unityプレイグラウンド