忍者ブログ
とりあえずオキュラス発売までにunityであれこれ作れるようになることを目標として日記とする所存。その他には大学で学んだこと、勉強会でのあれこれなど。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

unityで2d横スクロールゲー作る_part5

タイトル画面、ゲームクリア、ゲームオーバーの判定をつくる。

今回は大きく3つに分けている。

・タイトル画面作成

・ボタンに機能を付与してシーン移動実現

・接触判定でゲームオーバーとゲームクリア実装





まずはシーンを分けて、このように遷移するように作っていく。



各条件を考えた。遷移方法は主に2つで、ゲームオブジェクトに触れてシーン移動するか、ボタンを押してシーン移動するかである。

1.タイトル画面作成


とにもかくにも各画面を作らなければいけないので、手始めにスタート画面を作成する。
新しくシーンを作り、



UIからテキストとボタンを作成する。



名前などを指定してとりあえず下のように作成した。



あ、あとでタイトルロゴはつくる・・・

2.ボタンに機能を付与してシーン移動実現




このボタンのコンポーネントの中にButton(script)というのがある。一番下、On Click()のリストの中身は空になっている。さらに下の+ボタンを押すと、



ここから、オブジェクトを指定して、オブジェクトにつけてあるスクリプトの中から、ボタンを押したときの動作にあたる関数を指定出来る。



今回はCanvasにスクリプトをつけて行う。



Canvasを指定し、NoFunctionという部分から関数を探すことができる。 

シーンを切り替えるときは

Application.LoadLevel("切り替えたいシーンの名前");

と書けばよい。まず手始めに、

function start(){
Application.LoadLevel("main");
}


とスクリプトに書き加える。



Startの関数を指定出来るようになった。

これでボタンを押すと、Startシーンからmainシーンへ移動することができる。

ゲームクリア画面もゲームオーバー画面も以上と同じ要領で作っていく。

3.接触判定でゲームオーバーとゲームクリア実装

ゲーム内で特定の物体と接触したらゲームオーバー画面やゲームクリア画面へ強制移動させる。




このゲームでは、上画面の波のオフジェクトの少し下にあるColliderにプレイヤーのColliderが接触したときゲームオーバーになるとする。

波のオブジェクト(誰がなんと言おうと波なのである。)に以下のようなスクリプトでゲームオーバーを実装する。

function
 OnTriggerEnter2D(col:Collider2D){
        if(col.tag == "タグの名前(このタグに指定された物体と接触したとき)"){
            Application.LoadLevel("シーン名(このシーンへ移動)");
        }
    }

このとき、プレイヤーのタグは下で示した部分から指定する。

 

さらに、波のオブジェクトは、下のようにIs Triggerにチェックを入れる。



これによってOnTriggerEnter2Dを使用出来るようになる。このとき、このコライダーはブロックなどが落ちてきてもすり抜けていく。ゆえに、床などにOnTriggerEnter2Dを使用する場合は注意が必要である。

これを旗のオブジェクトにもゲームクリアスクリプトとして実装すれば、ゲームオーバーとゲームクリアーの機能も完成である。



次回は
PR