Unityで簡単な2Dゲームを作る(5)ゲームのクリア処理を追加する。

Unityで簡単な2Dゲームを作る(4)スクリプトを用意する。

Unityで簡単な2Dゲームを作る(4)スクリプトを用意する。
Unityで簡単な2Dゲームを作る(3)ゲーム画面を作る。アイテムの追加 続きです。 スクリプトは一切書かずにここまできましたが、 いよいよ書いていきたいと思います。 プレイヤーコントローラスクリプト アイ...

続きです。

書いたスクリプトはそれぞれオブジェクトにアタッチします。

プレイヤーコントローラスクリプト →Hierarchyウィンドウのplayerにアタッチ

アイテムコントローラスクリプト →Prefabを作る前のアイテムにアタッチ

アイテムジェネレータスクリプト 

 →Hierarchyウィンドウで「Create Enpty」で空のオブジェクトを作ってアタッチ

監督スプリクト 

 →Hierarchyウィンドウで「Create Enpty」で空のオブジェクトを作ってアタッチ

詳細は、この本に掲載されています。(Prefabの作り方も)

Unityの教科書 Unity 2017完全対応版 2D&3Dスマートフォンゲーム入門講座 (Entertainment&IDEA)

Unityの教科書 Unity 2017完全対応版 2D&3Dスマートフォンゲーム入門講座 (Entertainment&IDEA)

  • 作者: 北村愛実
  • 出版社/メーカー: SBクリエイティブ
  • 発売日: 2017/09/21
  • メディア: 単行本

・上から落ちてくるものを追加(量産 Prefab)・・・済

・プレイヤーと上から落ちてくるものの当たり判定を追加・・・済

・当たり判定で特定のものだけカウントする・・・済

・条件が満たされたらゲームクリア

上3つは終わったので、クリア処理を追加します。

ちなみに今回の「当たり判定で特定のものだけカウント」は

見た目でわかるように画面右上に表示するようにしています。

f:id:marimoko3:20181020093438p:plain

アイテムが取れた分、増えていくようにしています。

クリア処理は以下の2つで

・ゲーム画面上にクリア表示をする。

・「クリア画面」を作って、移動する。

後者だけでもいいのですが、ゲーム画面上にもクリア!って出る方が

個人的に好きなので・・・

この本の「ステージクリアを演出しよう」を参考に

UnityではじめるC# 基礎編

UnityではじめるC# 基礎編

  • 作者: 大槻有一郎,いたのくまんぼう
  • 出版社/メーカー: エムディエヌコーポレーション
  • 発売日: 2016/10/25
  • メディア: 単行本

作っていきます。

一応できました。

f:id:marimoko3:20181020102104g:plain

public void StageClear(){
        clearText.SetActive(true);
    }

次は、クリアの文字を出した後に、

ゲーム画面の動きを止めて、数秒後にクリア画面に移動したい。

数秒後になんらかの処理をするというのは、

実はアイテムをカゴに入れた時にすでに使っていました。

参考にしたのは

Unityで一定時間待つ処理の実装方法 – エンジニアはこわくない

Unity n秒後に遅れて処理する – LemonteaのUnity部屋

この辺りです。

private void OnCollisionEnter2D(Collision2D collision)
    {
        GameObject director = GameObject.Find(“GameDirector”);
        director.GetComponent<GameDirector>().ChkCount(this.gameObject.tag);
        //0.5秒後に実行する
        StartCoroutine(DelayMethod(0.5f));
    }
    
    // キャッチしたアイテムを消す
    private IEnumerator DelayMethod(float waitTime)
    {
        yield return new WaitForSeconds(waitTime);
            Destroy(gameObject);
    }

さてこのあとは

・クリア後に、ゲーム画面のアイテムとプレイヤーの動きを止める。

・クリアの数秒後に、画面を移動する。

これらの処理を追加します。

続く