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

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

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

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】