【Unity2D 入門】横スクロールアクションゲームを作ってみたい -ゲームクリア作成

raharu(仮名)(プログラマー)
これがダイバージェンス1%の先の世界か。。。

さぁこのクソゲーもそろそろ一区切りつきそうです。 今回はゴールを作りゲームクリアさせようと思います。

ゴールSpiriteを作る

f:id:raharu0425:20140123102200p:plain

いつものようにこんな物をつくってもらいました。

これにColliderを追加しておきましょう。

f:id:raharu0425:20140123102416p:plain

ついでに位置も調整しておきます。

ゴールにぶつかったらオブジェトの動きを止めてゲームクリア!!とテキストを出したいのです。

なのでGUIテキストを作成しておきます

Hierarchy > GUI Text で作ります

f:id:raharu0425:20140123102651p:plain

位置を調整したらPixel Offsetのxを400と指定しておき画面から外します。 ゲームクリアした際にこの文字が左がからスライドしてゲームクリアしてくるようにする為です。

ゲームクリア演出スクリプトを作る

goal.cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using UnityEngine;
using System.Collections;

public class goal : MonoBehaviour {

    public GameObject guitext;
    public bool is_goal = false;

    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update () {
        if(is_goal){
            if(guitext.guiText.pixelOffset.x > 1){
                guitext.guiText.pixelOffset -= new Vector2(10.0f, 0);
            }
            Time.timeScale = 0;
        }
    }

    void OnTriggerEnter2D(Collider2D col)
    {
        if(col.gameObject.tag == "Player"){
            is_goal = true;
        }
    }
}

さて実際エミュレートしてみましょう

f:id:raharu0425:20140123103206p:plain

これでゲームクリアできました。

Time.timeScale = 0;
これで他のオブジェクトの動きをポーズさせる事ができます。

感想

一旦この処理でゲームとしては一区切りです。
モーションデータを個別に分けてアタッチしたり、敵の動きに範囲を儲けたり、
その他バグの修正なども残っていますが、横スクロールアクションゲームを作ってみる為の
ノウハウは詰めたかと思います。次回は通信関連の方をもう少し掘り下げていきたいと思います。