Unity(C#)初心者・入門者向けチュートリアル ひよこのたまご

AndroidやiOS向けアプリを簡単に作れるゲーム開発環境Unity(ユニティ)の使い方を、チュートリアル方式で一緒に学びましょう!

【Unity2】uGUIでゲームオーバーとクリア画面を作成(後編)!SendMessage, Application.LoadLevel【ブロック崩し5】

Unityバージョン:5.0.0f4 Personal(2015年4月)

f:id:hiyotama:20150423102016p:plain

 

前回の続きです〜 

タイトル画面からゲーム画面へ無事遷移できました!

 

残る課題は

・ボールが画面下へ行った時、ゲームオーバー画面にする

・ゲームオーバー画面で再度クリックすると、タイトル画面へ戻る

・ブロックを全て消すとゲームクリアー画面となる

・ゲームクリアー画面で再度クリックすると、タイトル画面へ戻る

こんな感じですね〜ひとつずつ見ていきましょ〜

【目標】ゲームオーバーとクリアを設定して、ゲームを完全に回す

 

 【課題3】ボールが画面下へ行った時、ゲームオーバー画面にする

 それではまず、GUIの設定から行いましょう〜HierarchyからCreate>UI>Textを選択して下さい〜

 

前回同様CanvasのCanvasScalerの設定から行います〜

 

f:id:hiyotama:20150424093039p:plain

前回と全く同じ設定

 

Textの名前をGameOverに変更します〜

 

f:id:hiyotama:20150424083911p:plain

 

前回の記事の要領で、GameOverの文字が真ん中に来るようにRectTransformを、文字がいい感じになるようにText(Script)を設定していきます〜

 

f:id:hiyotama:20150424094126p:plain

僕はこんな感じに設定しました

 

f:id:hiyotama:20150424094214p:plain

こんな感じのポジショニング

 

今のままではGameOverの文字が出っぱなしなので、文字の表示/非表示について説明します〜まずはscript〜

 

 

このGameOverScriptを、Canvas>GameOverオブジェクトに貼り付けて下さい!

 

ゲームスタート時に テキストを無効にして非表示にし、ボールが画面下へ行き負けた時にLoseメソッドを実行するようになっております〜Loseメソッドの実行方法は課題4にて〜

 

【課題4】ゲームオーバー画面で再度クリックすると、タイトル画面へ戻る

それでは続いてゲームオーバー判定用の、BottomScriptです〜

 

 

まずはこのscriptを画面最下部にある壁(Bottomと名付けました)に貼り付けて下さい〜

 

f:id:hiyotama:20150424095129p:plain

こいつです

 

BottomScriptにgameOverというGameObjectをpublicで作成しておいたので、作成したGameOverのGUIオブジェクトをドラッグ&ドロップします!

 

f:id:hiyotama:20150424095616p:plain

ドラッグ&ドロップ!

 

これでボールがBottomにぶつかった時にボールが消滅し、SendMessageによりGameOverScriptのLoseメソッドを実行することによりGameOverの文字を表示させ、goTitleをtrueにした結果Updateメソッド内が有効になり、更にその状態で画面をクリックするとタイトルへ戻るシステムができあがりました!

 

【課題5】 ブロックを全て消すとゲームクリアー画面となる

【課題6】ゲームクリアー画面で再度クリックすると、タイトル画面へ戻る

続きましてブロックを全て消した時にGameClearとなる設定を行います〜まずはGUIを作成しましょう〜Hierarchy>Create>UI>Textを選択し、名前をGameClearに変更します!

 

f:id:hiyotama:20150424101258p:plain

RectTransformとText(script)の設定は基本的にGameOverと同じでいいですが、おめでとう感を出すために黄色に色付けしました〜

 

f:id:hiyotama:20150424101611p:plain

Colorで設定

 

続いてscriptです〜メソッド名をWinにしただけでGameOverScriptと全く同じです!

 

 

 

それではこのWinメソッドを呼び出すためのScriptを、2-2の記事で書いたBallScriptに加筆しましょう〜 

 

 

#7にて変数として、BlockCnt(ブロックカウント)を20で設定しています〜

 

そしてOnCollisionEnterにてBlockタグの付いたオブジェクトにボールが当たる度にブロックカウントを-1しています〜そして、Updateメソッドにてブロックカウントが0になった時に、ボールの動きを止め、GameClearScriptのWinメソッドを実行しGameClear!の文字を表示しています〜最後に、GameClear状態でクリックするとタイトルへ戻るようになっております〜

 

BallScriptのGameClear欄に、GameClearオブジェクトをドラッグ&ドロップしましょう〜

 

f:id:hiyotama:20150424104940p:plain

ドラッグ&ドロップ!

 

最後にPrefabフォルダにあるブロックのPrefabにBlockタグを付けてタグを付けましょう〜

 

f:id:hiyotama:20150424103938p:plain

prefabフォルダのブロックを選択

 

f:id:hiyotama:20150424104141p:plain

Inspector>Tag>Add Tagを選択

 

f:id:hiyotama:20150424104340p:plain

プラスで作成>Tag0にBlockと書き込む

 

f:id:hiyotama:20150424104640p:plain

再度ブロックPrefabを開き作成したBlockタグを付ける

 

これでゲームオーバーとゲームクリアーが機能するはずです〜

f:id:hiyotama:20150424105129p:plain

ゲームオーバー

 

f:id:hiyotama:20150424105409p:plain

ゲームクリアー

 

f:id:hiyotama:20150424105532p:plain

どちらもタイトル画面へ戻る

 

ひとまず形になったかと思います〜見て下さった皆様、長いことありがとうございました!

 

【Unity開発2】下準備【ブロック崩し1/5】

【Unity開発2】ボールをぶつけて、ブロックを消したい!【ブロック崩し:2/5】

【Unity開発2】プレイヤーを動かしてゲームを継続させたい!【ブロック崩し:3/5】

【Unity開発2】ゲームオーバー・ゲームクリアを出したい!(前編)【ブロック崩し:4/5】

【Unity開発2】ゲームオーバー・ゲームクリアを出したい!(後編)【ブロック崩し:5/5(Fin)】