目次
前回のチュートリアル
はじめに
前回は、ゲームオーバーの表示を作成しました
今回は、だんだん敵の出現頻度を上げるコードを作成していきます
敵の出現を管理するスクリプトの修正
現在は、ゲームを開始してから常に敵の出現頻度が一定で、
ゲームの難しさに変化がないため、最初は敵が少しだけ出現し、
だんだん敵が多く出現していくようにしていきます
「EnemyManager」をコードエディタで開き、下記のコードを削除します
public float m_interval; // 出現間隔(秒)
次に、変数の定義に下記のコードを追加します
public float m_intervalFrom; // 出現間隔(秒)(ゲームの経過時間が 0 の時) public float m_intervalTo; // 出現間隔(秒)(ゲームの経過時間が m_elapsedTimeMax の時) public float m_elapsedTimeMax; // 経過時間の最大値 public float m_elapsedTime; // 経過時間
そして、Update 関数の先頭の
// 出現タイミングを管理するタイマーを更新する m_timer += Time.deltaTime; // まだ敵が出現するタイミングではない場合、 // このフレームの処理はここで終える if ( m_timer < m_interval ) return;
上記のコードを下記のように変更します
// 経過時間を更新する m_elapsedTime += Time.deltaTime; // 出現タイミングを管理するタイマーを更新する m_timer += Time.deltaTime; // ゲームの経過時間から出現間隔(秒)を算出する // ゲームの経過時間が長くなるほど、敵の出現間隔が短くなる var t = m_elapsedTime / m_elapsedTimeMax; var interval = Mathf.Lerp( m_intervalFrom, m_intervalTo, t ); // まだ敵が出現するタイミングではない場合、 // このフレームの処理はここで終える if ( m_timer < interval ) return;
敵の出現間隔を調整
スクリプトの修正が完了したので、Unity で出現間隔を調整していきます
「EnemyManager」オブジェクトを選択し、パラメータを設定します
項目 | 内容 | 補足 |
---|---|---|
Interval From | 1 | 出現間隔(秒) (ゲームの経過時間が 0 の時) |
Interval To | 0.25 | 出現間隔(秒) (ゲームの経過時間が m_elapsedTimeMax の時) |
Elapsed Time Max | 60 | 経過時間の最大値 |
これで、ゲーム開始時は敵が 1 秒毎に出現し、
ゲームが 60 秒経過すると、敵が 0.25 秒毎に出現するようになります
Unity を再生すると、ゲーム開始時は、あまり敵が敵が出現しないですが、
時間が経過するほど、たくさんの敵が出現するようになったことが確認できます
次回は、プレイヤーのレベルが上ったらパワーアップするようにしていきます