スピードアップ
CoddyのUnityジャーニー「本格的なゲームを作る」セクションの一部。レッスン 29/56。
チャレンジ
中級走り続けるほど、道路の速度が上がります。速度はゲーム全体に関わるため、GameManagerに移し、すべての障害物がそこから読み取るようにします。これまでのレッスンの内容はすべて残してください。
Inspectorでspeed(10)、speedUp(0.5)、maxSpeed(20)を設定するGameManagerで、次のようにします。
- シングルトンにします。
public static GameManager Instanceを用意し、Awake()でこのスクリプトを設定します。 - 毎フレーム、
speedを1秒あたりspeedUpずつ増加させ、maxSpeedを超えないようにします。
Obstacleでは、次のようにします。
speedフィールドを削除し、代わりにGameManager.Instance.speedで移動させます。毎フレーム読み取ることで、すでに道路上にある障害物も速度が上がります。
Playを押して、道路の速度が上がるまで走り続けてから、Checkを押します。
自分で試してみよう
using UnityEngine;
public class GameManager : MonoBehaviour
{
// ゲームの進行を管理します。速度、距離、衝突を扱います。後のレッスンで中身を実装します。
}