Unity C# 音ゲーの作り方5 音ノーツが自動で流れるようにする/ボタンの仕組みを作成しよう | Unity入門の森 ゲームの作り方

Unity C# 音ゲーの作り方5 音ノーツが自動で流れるようにする/ボタンの仕組みを作成しよう

Unity C# 音ゲーの作り方


Unity入門の森オリジナル本格ゲーム制作講座はこちら
11種類の本格ゲームの全ソースコード公開・画像&動画による解説付き

今回はUnity C# 音ゲーの作り方講座の第5回目、「音ブロック・ノーツが自動で流れるようにする/ボタンの仕組みを作成しよう」をチュートリアル形式で説明していきます。

前回までで音ゲーのノーツを生成・配置することができました。

前回の記事:

Unity C# 音ゲーの作り方4 ノーツをスクリプトから生成して配置しよう
Unity C# 音ゲーの作り方講座の第4回目、「ノーツをスクリプトから生成して配置しよう」をチュートリアル形式で説明していきます。 前回は「TextMeshProや画像を配置してゲーム結果を表示させよう」でゲーム画面の設計を行いました。 ...

音ゲー完成版のようにゲーム画面の上からmusicboxが流れてくる仕組みをここで実装します。

また、後で音を鳴らせたかどうか判断するためのcollisionboxをボタンを押すことで表示・非表示させる仕組みを作成します。

それでは始めていきます。


【Line登録者限定のプレゼントもあるよ!】

音ゲーのノーツであるmusicboxが流れてくるスクリプトを作成しよう

前回の講座では、musicboxのインスタンスを生成してZ方向に並べてきました。

今回は、Z方向にmusicboxを自動で動かして流す処理を開発します。

まず初めに『Script』フォルダーの中でスクリプトを作成して名前を『Musicboxslide』に変更してください。

『Musicboxslide』スクリプトを開いて以下のコードを入力してください。

 

『Musicboxslide』スクリプトについて解説していきます。

以下のコードは、『musicbox』オブジェクトのTransformを検知するコードです。

 

Transformを検知した上でZ方向に進む速度を決めます。マイナスをつけることでゲーム画面の上から流れてくるような方向でに動かすことができます。

 

以下のコードは、Z方向に動いたmusicboxのTransformを再度検知して設定してくれるコードです。

 

それでは、コードが入力出来たらヒエラルキーの中にある『musicbox.pink』の名前の横にある『>』を選択してください。

『>』を選択すると『musicbox.pink』プレハブの内容を見られます。この中で設定などを変更するとプレハブ全体が変更されます。

『musicbox.pink』プレハブのインスペクターに『musicboxslide』スクリプトをドロップしてください。

ヒエラルキーの中にある『musicbox.pink』の名前の横にある『<』を選択して戻ります。

これで1つ目の『Musicboxslide』スクリプトの設定は完了です。

残り4つの『musicbox』プレハブにも同様にスクリプトの設定をしてください。

5つの『musicbox』プレハブに設定したら実行ボタン▶︎を押して以下のように動いていたら完了です。

 

音ゲーのボタンの仕組みを作って音ブロックを叩くためのcollsionboxを動かそう

本講座の第2回目で作成したボタンを押すと音ブロックを叩く役割を果たす『collisionbox』オブジェクトを表示・非表示できる仕組みを作ります。

『Script』フォルダーの中でスクリプトを作成して『Trigger』と名前を変更してください。

『Trigger』スクリプトを開いて以下のコードを入力してください。

 

『Trigger』スクリプトの解説をします。

『Trigger』スクリプトは、以下の2つのコードで成り立っています。

ボタンを押すとオブジェクトが表示されるコードです。

 

ボタンを離すとオブジェクトが非表示になるコードです。

 

コードが入力できたら保存して『collisionbox.pink』オブジェクトのインスペクターにドロップしてください。

ヒエラルキーの中で『Button.pink』オブジェクトのインスペクターの下にあるコンポーネントを追加していきます。

コンポーネントとは、オブジェクトに動作や設定を加えることができる機能全てのことです。

『コンポーネントを追加』→『Event』→『Event Trigger』を選択してください。

イベントトリガーとは、指定したアクションが起こると指定している関数を呼ぶことができるコンポネートです。

音ゲーの場合、ボタンを押すというアクションを起こして『collisionbox』オブジェクトを表示させる関数を呼ぶということです。

イベントトリガーを追加するとインスペクターに『EventTrigger』という項目が増えます。

『EventTrigger』の『新しいイベントタイプを追加』を選択して『PointerDown』を選択してください。

長細い枠が出現するため右下の『+』を選択してください。

イベントトリガーのオブジェクト設定欄にヒエラルキーの中にある『collisionbox.pink』オブジェクトをドロップさせてください。

オブジェクト設定欄の横のアクション設定の▼を選択して『Trigger』→『PointerDown()』を選択してください。

次に『新しいイベントタイプを追加』を選択して『PointerUp』を選択してください。

オブジェクト設定は『collisionbox.pink』に設定してアクション設定は『Trigger』→『PointerUp()』を選択してください。

 

1つ目のボタンの仕組み作りは完了です。

残り3つの『collisionbox』オブジェクトと『Button』オブジェクト同様に設定していきましょう。

オブジェクトの設定は『Button』オブジェクトと『collisionbox』オブジェクトの色の名前を同じにして設定してください。

『Button.green』 →  イベントトリガーのオブジェクト設定『collisionbox.green』
『Button.blue』 →  イベントトリガーのオブジェクト設定『collisionbox.blue』
『Button.orange』 →  イベントトリガーのオブジェクト設定『collisionbox.orange』

 

次にゲームのスタート時は『collisionbox』オブジェクトを非表示にしたいので4つの『collisionbox』オブジェクトのインスペクターの名前の横にあるチェックを外してください。

設定が完了したら実行ボタン▶︎を押して以下のようにボタンを押すと『collisionbox』表示されボタンを離すと非表示になっていれば完了です。

 

音ゲーの作り方第5回のまとめと次回

第5回目の開発お疲れさまでした。

今回は、『musicbox』オブジェクトを動かしたりボタンの仕組みを作成しました。

まだ『musicbox』オブジェクトと『collisionbox』オブジェクトは衝突しませんが、これから衝突すると音が鳴って消える仕組みを作っていきます。

次回は、第6回の「Unity 音ゲーの作り方6 音源データを準備/ノーツが音を鳴らして消える処理を作ろう」です。



Unity入門の森オリジナル本格ゲーム制作講座はこちら
11種類の本格ゲームの全ソースコード公開・画像&動画による解説付き

コメント

タイトルとURLをコピーしました