とあるプログラマの備忘録

都内某所に住むプログラマが自分用に備忘録を残すという趣旨のブログです。はてなダイアリーから移動しました!

Unity2D入門 スクロールアクションゲームを作る ~ゲームクリアを作る~

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

ゴール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

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; これで他のオブジェクトの動きをポーズさせる事ができます。

感想

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