ScratchからのUnityでゲーム作成ガイド2 ~同じものをたくさん作る~
前回はオブジェクトを移動させるようにしました。
今回はあめが上から降ってくるところを作っていきます。
同じものを何個も作る場合はUnityならPrefab、Scratchならクローンを使う
オリジナルのオブジェクト(もの)から作られたものをインスタンスと言います。
Unityの場合とScratchの場合とでは、作り方が違います。
ではちょっと長いですがUnityのほうから作り方を見ていきます。
あめを上から降らせる(Unity)
Unity①:あめ(candy)をSceneに追加
・あめをSceneにドラッグ&ドロップします
・大きさを調整します
Unity②:あめの動きをスクリプトに書く
・スクリプトを追加して、名前をcandyControllerにする
・ファイルをダブルクリックして、エディタに表示します
・「下に動く」「画面の外の位置になったら消す」ように記述して、ファイルを保存します
Unity③:あめの動きのスクリプト(candyController)をあめにアタッチ(ドラッグ&ドロップ)する
・HierarchyのcandyにcandyControllerをドラッグ&ドロップします
・Sceneを保存して実行すると、あめが降ってきます
これだけだと1このあめしか降ってこないので、量産できるようにします。
Unity④:あめのcandyPrefabを作る
・ヒエラルキービューのあめ(candy)をcandyPrefabという名前に
変更し、candyPrefabをAssetsの一覧のところにドラッグ&ドロップします
・HierarchyのcandyPrefabを削除します
Unity⑤:あめを生成するcandyGeneratorを作る
・candyGenerator用のC# Scriptを追加して、「candyGenerator」に名前を変更します
・ファイルをダブルクリックしてエディタを起動します
・candyPrefabを1秒ごとに生成するよう記述します
・Create→Create Emptyを選択して、candyGeneratorを追加するためのGameObjectを追加します
・空のGameObjectが追加されます
・GameObjectにcandyGeneratorをドラッグ&ドロップします
・GameObjectを選択すると、追加したcandyGeneratorが表示されます
・AssetsのcandyPrefabをcandyGeneratorのcandyPrefabにドラッグ&ドロップし、Sceneを保存します
・▶ボタンを押して実行すると、あめが何個も降ってくるようになりました
あめを上から降らせる(Scratch)
Scratch①:あめを追加する
・前回、ドットうさぎと一緒にあめを追加したので飛ばします
Scratch②:あめを上から降らせる
・あめをスプライト一覧から選択します
・「制御」のブロックから「クローンを作る」「クローンされたとき」を使って以下のように動くようにします
〇旗が押されたとき→クローンをつくる
〇クローンされる→端に触れるまで下に移動(端に触れたらクローンを削除)
・旗マークを押して実行すると、あめがいくつも降ってきます
これだと同じ場所からしか降ってこないので、降ってくる場所をランダムな位置にします。
Scratch③:あめが降ってくる位置を調整
・「動き」から「X座標を~、Y座標を~にする」ブロックを使って、Y座標は固定で「150」にします
・X座標に「-200から200までの乱数」を設定します
Scratch④:あめをかくしておいて、クローンされたときに表示させる
・クローンを使う場合は、「表示する」の設定を非表示にしておいて、クローンされたときに表示するようにします。
※クローンされたものしか「クローンされたとき」の動作をしてくれないため
・旗を押して実行すると、ランダムな位置からあめが降ってくるようになりました
これでUnityもScratchもあめが降ってくるようになりました。
UnityのPrefabはちょっとむずかしいかも
ゲーム以外でもプログラミングではインスタンスというのはたいてい出てくるかと思うのですが(JavaだとClassからインスタンスを生成するとか)、プログラミングをはじめた時はインスタンスってよくわかんないなとなるかもしれないです。
UnityのPrefabが難しい人は、Scratchのクローンを使って雨とか雪を降らせてみたり、いろいろ作ってみるといいのではないかと思います。
Scratchはざっくりした動きを作るのは簡単、細かいところは調整が必要
Scratchはクローンを使うと簡単に動かせるようにはなるのですが、上でも①と②で動きはすぐできたけど、③、④のように細かい調整が必要でした。
とにかくいろいろなブロックを使ってみて使い方を覚えるのがいいと思います。小学生が触れる機会があればどんどん自由に自分が好きなものを作ってみる、というのがおすすめです。
プログラミングというよりは、砂場で遊ばせるみたいな感覚かと思います。
次回はあめをドットうさぎが拾ったときにスコアが上がるという、当たり判定とスコアの表示ところをやりたいと思います。
この記事が気に入ったらサポートをしてみませんか?