unityで2d横スクロールゲー作る_part5 unity 2015年07月17日 タイトル画面、ゲームクリア、ゲームオーバーの判定をつくる。 今回は大きく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