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

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

【Unity6】ひよこを大量発生させる!Physics2D Material, Coroutine, WaitForSeconds【ツムツム風2】

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


スポンサーリンク

Unity5.0.0f4 Personal(2015年5月)

f:id:hiyotama:20150518132929p:plain

 

前回の続きです〜

今回は、前回までに作成しておいたひよこを、ゲーム開始時に50匹発生させます〜

 

【目標】ゲーム開始と同時にひよこを発生させる

 

【課題1】ひよこをPrefab化する

まずはひよこを1匹Prefab化しておいて、それを元に50匹のひよこを発生させましょう〜Prefab化については以下のエッセンスをご参照下さい〜

 

 

とりあえず黄色のひよこのSprite画像をHierarchyへ置いてオブジェクト化し、名前をPiyoにし、Rigidbody2DとCircle Collider2Dを追加します〜

 

f:id:hiyotama:20150512173027p:plain

Spriteの設定

 

Circle Collider2Dがひよこよりも少しはみ出ているので、ちょうどひよこの外枠と重なるよう、Circle Collider2DのRadiusを0.44に変えておきましょう〜

 

f:id:hiyotama:20150512173234p:plain

Radius=0.44でColliderを画像に重ねる

 

次にひよこ同士がぶつかった時に少しはねるようにするため、Physics2D Materialをひよこに付けます〜

ProjectビューからCreate>Physics2D Matrialで作成し、名前をbound、Frictionを0.2、Bouncinessを0.2に変更して下さい〜

 

f:id:hiyotama:20150513102526p:plain

Physics2D Material

 

ここまで完成したら、ひよこをPrefab化して下さい!

 

f:id:hiyotama:20150512174106p:plain

ドラッグ&ドロップ! 元のPiyoオブジェクトは削除

 

【課題2】スクリプトでひよこを発生させる

ひよこのPrefabが完成したので、Prefabを元にひよこを50匹発生させるballScriptを作成し、MainCameraに付けましょう〜以下ソースです〜

 

 

public変数が2つあります〜1つはballPrefabです〜こっちにはPrefab化したひよこを設定します〜

 

f:id:hiyotama:20150512175512p:plain

ドラッグ&ドロップ! 

 

2つ目のballSprites[ ]は配列を表しており、ここには5種類のひよこのSprite画像を全て指定します〜Sizeのところに5と入力するとElement0〜4が出てくるので、そこにドラッグ&ドロップして下さい〜

 

f:id:hiyotama:20150512190353p:plain

ドラッグ&ドロップ!

 

StartメソッドにてStartCoroutineを実行して、DropBallメソッドを呼び出しています〜コルーチンで呼び出したメソッド内では、WaitForSecondsによって処理を一時停止させることができます〜(後述)

 

続いてDropBallメソッドですが、冒頭でfor文が出ています〜今回は引数count=50なので、for文内を50回繰り返します〜

for文の中で最初にしているのは、InstantiateによってballPrefabを生成しています〜今回注意してほしいのは、Quaternion.AngleAxis(Random.Range(-40, 40) , Vector3.forward)という部分です!これは、生成するPrefabの角度を決定しています〜

第一引数は-40度〜40度で角度をランダムで決定しているのは想像できると思いますが、Vector3.forwardの部分が少し分かりづらいと思います〜Vector3.forwardは手前、つまりZ軸方向を表しているのですが、これは、Z軸方向に一本の棒を突き刺したとし、それを回転軸にしている感じです〜

 

f:id:hiyotama:20150512192711p:plain

赤い棒が回転軸だとして、-40度〜40度をランダムで決定している

 

 続いてspriteIdを0〜4の間で決定して、生成したPrefab(ball)の名前をPiyo0〜Piyo4の間のどれかにしています〜

次に、ballのSprite画像を決定しています〜冒頭で設定したballSpritesの中から、spriteIdと一致する画像を使います〜

最後に、WaitForSecondsにより0.05秒停止してから、次のPrefab生成に戻ります!

 

【結果】

 

f:id:hiyotama:20150512194236p:plain

 

50匹のひよこがランダムで発生しました!

 

今回はここまでです〜

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

 

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

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

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

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

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

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

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