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

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

【Unity6】uGUI(Button)で更新機能を実装! foreach, Destroy, Instantiate【ツムツム風6】

いつもひよこのたまごをご利用下さいましてありがとうございます!
おかげ様でチュートリアル数も10ゲーム目となりました!
チュートリアル一覧は
こちら からどうぞ!


スポンサーリンク

Unity5.0.0f4 Personal(2015年5月)

f:id:hiyotama:20150518132929p:plain

 

前回の続きです〜

今回はゲームに詰まった時にあたらしいひよこに更新するひよこExchangeボタンを作りたいと思います〜

 

【目標】更新機能をつける!

【課題1】ひよこExchangeボタンを作る 

ゲームを進めていくとどうやってもひよこを消すことができず、詰まってしまうことがあります〜そんな時、一旦全てのひよこを削除して、再度50個のひよこを作成することができれば、ゲームを続行することができます!というわけで早速作っていきます〜まずは床部分のScale.Yを、1から2に変更します!

 

f:id:hiyotama:20150519135130p:plain

Yを1から2に変更

 

f:id:hiyotama:20150519135228p:plain

床が少し大きくなる

 

続いて床に重なるようにひよこExchangeボタンを作成します〜HierarchyからCreate>UI>Buttonを選択し、以下のように設定して下さい〜

また、GUI(Button)については以下エッセンスにて詳しく書いてありますので、ご参照下さい〜

 

 

f:id:hiyotama:20150519135601p:plain

名前はExchange、位置は画面下

 

f:id:hiyotama:20150519135735p:plain

ボタンのText設定

 

f:id:hiyotama:20150519135756p:plain

こんな感じ

 

【課題2】ひよこを交換するスクリプトを作成する

続いてExchangeScriptを作成し、今作成したExchangeオブジェクトに取り付けていきます〜以下ソースです!

 

 

public変数のballScriptがあるので、ballScriptの付いているMainCameraを指定してあげます〜

 

f:id:hiyotama:20150519143316p:plain

ドラッグ&ドロップ!

 

次にひよこプレファブ(Piyo)に、「Respawn」というタグを付けます〜

 

f:id:hiyotama:20150519143842p:plain

プレファブのInspectorからTag>Respawnを選択

 

ExchangeScriptの中にはメソッドがひとつしかありません〜Exchangeメソッドです!まずはpiyosという配列に、Hierarchy上にある「Respawn」というタグのついたオブジェクト(つまりひよこ)を全て格納します〜そして、ひよこ達をforeach文でひとつひとつ取り出し、Destroyしています〜

全てDestroyし終わったら、ballScriptのDropBallメソッドを呼び出し、新しくひよこを作成しています〜50匹のひよこを作りたいので、50を引数としています〜

 

次にボタンを押した時にExchangeメソッドが実行されるように設定します〜ExchangeオブジェクトのInspectorからButton(Scrip)>On Click ()に進み、プラスボタンを押して下さい〜

 

f:id:hiyotama:20150519144119p:plain

プラスボタンを押す

 

出てきた項目の2行目をExchangeに変更し、1行目右の「No Function」と書かれた項目をExchangeScript>Exchange ()に変更して下さい〜

 

f:id:hiyotama:20150519144354p:plain

準備OK

 

これで一応動くようになったのですが、このひよこExchangeボタンは連打すると想定外に大量のひよこを生成してしまいます〜なので、ballScriptのDropBallメソッドを実行した時にひよこExchangeボタンを一定時間押せなくする処理を追記します〜以下ソースです!

 

 

引数のcountが50だった時のみ、RestrictPushメソッドを実行しています〜メソッド内では5秒間ひよこExchangeボタンを押せない状態を継続し、5秒経過すると再び押せるようにしています〜

interactableというプロパティをfalseにすることで、ボタンを押せない状態(Disabled状態)を実現しています〜

 

f:id:hiyotama:20150519154625p:plain

これ以上無理!となった時ひよこExchangeボタンを押すと・・・

 

f:id:hiyotama:20150519154658p:plain

新たなひよこに入れ替わる

 

f:id:hiyotama:20150519154726p:plain

5秒後には再び使えるようになっている

 

無事実装できました〜今回はここまでです〜

ありがとうございました〜

 

【Unity開発6】下準備【つむつむ風1】

【Unity開発6】ひよこを発生させる【つむつむ風2】

【Unity開発6】ひよこをなぞって消したい!【つむつむ風3】

【Unity開発6】なぞったひよこだけ色を変えたい!【つむつむ風4】

【Unity開発6】スコア機能を付けたい!【つむつむ風5】

【Unity開発6】ひよこExchangeボタン(更新機能)を作りたい!【つむつむ風6】

【Unity開発6】制限時間とゲームオーバーを実装したい!【つむつむ風7】