-
Notifications
You must be signed in to change notification settings - Fork 37
第07回 Wave型の仕組み作り
前章では、背景を作りスクロールさせたことにより、よりゲームらしくなってきました。この章では、さらにゲームの中身を作っていきます。今回のチュートリアルはWave型のシューティングゲームです。
空のGameObjectを作成し、名前をWaveとしてください。Waveの**位置は(0,0,0)**とします。 次に3つのEnemyを子要素として図7.1のように並べます。
図7.1:
最後にプレハブにして、ゲームオブジェクトの方は削除しましょう。
Waveプレハブをスクリプトから作成します。 まず、Emitter.csをScriptsフォルダの中に作成します。
Emitter.cs
using UnityEngine;
using System.Collections;
public class Emitter : MonoBehaviour
{
// Waveプレハブを格納する
public GameObject[] waves;
// 現在のWave
private int currentWave;
IEnumerator Start ()
{
// Waveが存在しなければコルーチンを終了する
if (waves.Length == 0) {
yield break;
}
while (true) {
// Waveを作成する
GameObject wave = (GameObject)Instantiate (waves [currentWave], transform.position, Quaternion.identity);
// WaveをEmitterの子要素にする
wave.transform.parent = transform;
// Waveの子要素のEnemyが全て削除されるまで待機する
while (wave.transform.childCount != 0) {
yield return new WaitForEndOfFrame ();
}
// Waveの削除
Destroy (wave);
// 格納されているWaveを全て実行したらcurrentWaveを0にする(最初から -> ループ)
if (waves.Length <= ++currentWave) {
currentWave = 0;
}
}
}
}
次に空のゲームオブジェクトを作成し、名前をEmitterとしてください。ゲームオブジェクトの位置はX 0 Y 3.5 Z 0とします。 EmitterゲームオブジェクトにEmitter.csをアタッチし、Waveプレハブを図7.2のように格納します。
図7.2:
この状態でゲームを再生してみてください。 敵を倒したり通り過ぎて行くと再度Waveが登場します。
図7.3:
弾が多く敵を倒せない場合はWaveプレハブにあるEnemyのCanShotのチェックを外そう
今回はここで終了です。つまずいてしまった方はプロジェクトファイルをダウンロードして新たな気持ちで次の回へ進みましょう。
第01回 スプライトとスプライトアニメーションの作成
第02回 プレイヤーの移動
第03回 プレイヤーから弾を撃つ
第04回 敵を作成しよう
第05回 当たり判定とアニメーションイベントとレイヤー
第06回 背景を作る
第07回 Wave型の仕組み作り
第08回 音をつける
第09回 プレイヤーの移動制限と様々な修正
第10回 タイトルを付ける
第11回 エネミーのHP、弾の攻撃力、アニメーションの追加
第12回 Waveを5個にする、スコアの実装
第01回 複数の解像度に対応する(黒帯を追加する)
第02回 複数の解像度に対応する(引き伸ばす)
第03回 タッチパネル対応
第04回 バーチャルジョイスティック対応