【Unity2】uGUIでゲームオーバーとクリア画面を作成(後編)!SendMessage, Application.LoadLevel【ブロック崩し5】
Unityバージョン:5.0.0f4 Personal(2015年4月)
前回の続きです〜
タイトル画面からゲーム画面へ無事遷移できました!
残る課題は
・ボールが画面下へ行った時、ゲームオーバー画面にする
・ゲームオーバー画面で再度クリックすると、タイトル画面へ戻る
・ブロックを全て消すとゲームクリアー画面となる
・ゲームクリアー画面で再度クリックすると、タイトル画面へ戻る
こんな感じですね〜ひとつずつ見ていきましょ〜
【目標】ゲームオーバーとクリアを設定して、ゲームを完全に回す
【課題3】ボールが画面下へ行った時、ゲームオーバー画面にする
それではまず、GUIの設定から行いましょう〜HierarchyからCreate>UI>Textを選択して下さい〜
前回同様CanvasのCanvasScalerの設定から行います〜
前回と全く同じ設定
Textの名前をGameOverに変更します〜
前回の記事の要領で、GameOverの文字が真ん中に来るようにRectTransformを、文字がいい感じになるようにText(Script)を設定していきます〜
僕はこんな感じに設定しました
こんな感じのポジショニング
今のままではGameOverの文字が出っぱなしなので、文字の表示/非表示について説明します〜まずはscript〜
このGameOverScriptを、Canvas>GameOverオブジェクトに貼り付けて下さい!
ゲームスタート時に テキストを無効にして非表示にし、ボールが画面下へ行き負けた時にLoseメソッドを実行するようになっております〜Loseメソッドの実行方法は課題4にて〜
【課題4】ゲームオーバー画面で再度クリックすると、タイトル画面へ戻る
それでは続いてゲームオーバー判定用の、BottomScriptです〜
まずはこのscriptを画面最下部にある壁(Bottomと名付けました)に貼り付けて下さい〜
こいつです
BottomScriptにgameOverというGameObjectをpublicで作成しておいたので、作成したGameOverのGUIオブジェクトをドラッグ&ドロップします!
ドラッグ&ドロップ!
これでボールがBottomにぶつかった時にボールが消滅し、SendMessageによりGameOverScriptのLoseメソッドを実行することによりGameOverの文字を表示させ、goTitleをtrueにした結果Updateメソッド内が有効になり、更にその状態で画面をクリックするとタイトルへ戻るシステムができあがりました!
【課題5】 ブロックを全て消すとゲームクリアー画面となる
【課題6】ゲームクリアー画面で再度クリックすると、タイトル画面へ戻る
続きましてブロックを全て消した時にGameClearとなる設定を行います〜まずはGUIを作成しましょう〜Hierarchy>Create>UI>Textを選択し、名前をGameClearに変更します!
RectTransformとText(script)の設定は基本的にGameOverと同じでいいですが、おめでとう感を出すために黄色に色付けしました〜
Colorで設定
続いてscriptです〜メソッド名をWinにしただけでGameOverScriptと全く同じです!
それではこのWinメソッドを呼び出すためのScriptを、2-2の記事で書いたBallScriptに加筆しましょう〜
#7にて変数として、BlockCnt(ブロックカウント)を20で設定しています〜
そしてOnCollisionEnterにてBlockタグの付いたオブジェクトにボールが当たる度にブロックカウントを-1しています〜そして、Updateメソッドにてブロックカウントが0になった時に、ボールの動きを止め、GameClearScriptのWinメソッドを実行しGameClear!の文字を表示しています〜最後に、GameClear状態でクリックするとタイトルへ戻るようになっております〜
BallScriptのGameClear欄に、GameClearオブジェクトをドラッグ&ドロップしましょう〜
ドラッグ&ドロップ!
最後にPrefabフォルダにあるブロックのPrefabにBlockタグを付けてタグを付けましょう〜
prefabフォルダのブロックを選択
Inspector>Tag>Add Tagを選択
プラスで作成>Tag0にBlockと書き込む
再度ブロックPrefabを開き作成したBlockタグを付ける
これでゲームオーバーとゲームクリアーが機能するはずです〜
ゲームオーバー
ゲームクリアー
どちらもタイトル画面へ戻る
ひとまず形になったかと思います〜見て下さった皆様、長いことありがとうございました!
【Unity開発2】ボールをぶつけて、ブロックを消したい!【ブロック崩し:2/5】
【Unity開発2】プレイヤーを動かしてゲームを継続させたい!【ブロック崩し:3/5】