Menu
CoddyTech

振り返り:バレットタイム

CoddyのUnityジャーニー「本格的なゲームを作る」セクションの一部。レッスン 36/56。

challenge icon

チャレンジ

中級

フォーカスメーターを使って、ゲームにバレットタイムを導入しましょう。GameオブジェクトにBulletTime.csを書きます。InspectorでslowScale(0.2)、maxFocus(2)、recharge(0.5)、および画面上部にある塗りつぶしImageのfocusBarを設定します。メーターの値はfloat型のfocusに保持します。

  • focusはmaxFocusの値で満タンから始まります。
  • Spaceキーを押していて、focusが0より大きい間、ゲームはslowScaleの速度で動作します。物理演算のステップも0.02から同じ倍率で短くなり、focusは実時間の1秒ごとに1ずつ減少しますが、0未満にはなりません。
  • それ以外の時間は、ゲームは通常の速度で動作し、物理演算のステップは0.02になります。メーターが空になると、Spaceキーを押し続けていてもバレットタイムは終了します。
  • Spaceキーを押していない間、focusは実時間の1秒ごとにrechargeずつ、最大maxFocusまで回復します。
  • 毎フレーム、バーのfillAmountはfocusをmaxFocusで割った値になります。

Playを押してSpaceキーを押し続け、雨の動きを見てから、Checkを押しましょう。

自分で試してみよう

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 Update()
    {
    }
}

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