Unity C# 音ゲーの作り方8 コンボをカウントするスクリプトを作成しよう

Unity C# 音ゲーの作り方


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

Unity C# 音ゲーの作り方講座の第8回目、「コンボをカウントするスクリプトを作成しよう」をチュートリアル形式で説明していきます。

前回講座の「Unity C# 音ゲーの作り方7 スコアをカウントするスクリプトを作成しよう」で点数を管理するスクリプトと点数をテキストオブジェクトに反映させるスクリプトを作りました。

Unity C# 音ゲーの作り方7 スコアをカウントするスクリプトを作成しよう
Unity C# 音ゲーの作り方講座の第7回目、「スコアをカウントするスクリプトを作成しよう」をチュートリアル形式で説明していきます。 前回は音源データをゲームに組み込み、音ノーツを生成して流れる処理とタイミングよく叩くと音が鳴るし仕組み...

今回はこの続きとして、連続で音を鳴らしたときのコンボ処理の実装とコンボ数をカウントするスクリプトを作成します。


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

音ゲーの『musicbox』と『collisionbox』を衝突させてコンボを発生させよう

音ゲーの『musicbox』と『collisionbox』を衝突させてコンボを発生させるために3種類のスクリプトを作成していきます。

1つ目は、発生したコンボ数をテキストオブジェクトに反映させるスクリプトです。

2つ目は、『musicbox』と『collisionbox』が衝突した時のコンボの数値を管理するスクリプトです。

本講座の音ゲーは、コンボ数を増加させるだけではなく『resetbox』が衝突するとコンボ数が0になる仕組みになっています。

そのため、『musicbox』と『resetbox』が衝突した時にコンボ数を0にするスクリプトも作成していきます。

合計3つのスクリプトを作成していきます。

まずは発生したコンボ数をテキストオブジェクトに反映させるスクリプトから作成していきます。

音ゲーのコンボ数をテキストオブジェクトに反映させるスクリプトを作成しよう

音ゲーのコンボ数をテキストオブジェクトに反映させるスクリプトを作成していきます。

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

以下に完成したスクリプトを掲載するのでコピーして入力してください。

 

『Combotext』スクリプトの解説をしていきます。

スコアをカウントするスクリプトと同様にスクリプトでTextMwshProを操作するときは『using TMPro;』が必要になります。

そのためTextMeshProオブジェクトを格納する際も『public Text』ではなく『public TextMeshProUGUI』を使用します。

後ほど作成する『ComboSm』スクリプトから『combocounttext』オブジェクトと紐付けると加算されたスコアが『Combotext』の『Combo』に反映されます。反映されたスコアを以下のコードで『combocounttext』オブジェクトに表示させます。

 

『Combotext』スクリプトの入力ができたらヒエラルキーの中にある『combocounttext』を選択してインスペクターに『Combotext』スクリプトをドロップしてください。

インスペクターにある『Combotext』の中の『Combocounttext』という項目の◉を選択して『combocounttext』を選択する。

 

これで音ゲーのコンボ数をテキストオブジェクトに反映させるスクリプトの作成と設定が完了しました。

音ゲーのコンボの数値を管理するスクリプトを作成しよう

音ゲーのコンボの数値を管理するスクリプトを作成していきます。

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

以下に完成したスクリプトを掲載するのでコピーして入力してください。

 

『ComboSm』スクリプトの解説をしていきます。

『Comboetext』スクリプトをアタッチしている『combocounttext』と紐付けるため『combocounttext』オブジェクトを探してオブジェクトを入れるための枠を以下のコードで作ります。

『musicbox』オブジェクトが『Player』タグの付いた『collisionbox』と衝突した時にコンボ数を1ずつ増やすコードを入力します。

『ComboSm』スクリプトの入力ができたらヒエラルキーの中にある『musicbox.pink』の『>』を選択してからインスペクターに『ComboSm』スクリプトをドロップしてください。

ドロップしたらヒエラルキーの中にある『musicbox.pink』の『<』を選択して戻ります。

 

『musicbox.pink』のインスペクターにある『ComboSm』という項目の『Sm』の◉を選択して『combocounttext』を選択してください。

 

同じやり方で『musicbox.green』『musicbox.blue』『musicbox.orange』にスクリプトをドロップして『Sm』という項目を『combocounttext』にしてください。

これで音ゲーのコンボの数値を管理するスクリプトの作成・設定が完了しました。

続いてコンボの数値を0にするスクリプトの作成を説明していきます。

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

以下に完成したスクリプトを掲載するのでコピーして入力してください。

 

『MinusComboSm』スクリプトの解説をしていきます。

『MinusComboSm』スクリプトは『ComboSm』スクリプトの内容とほとんど変わりませんが、『musicbox』と『resetbox』タグがついたオブジェクトに衝突した時にコンボ数が0になり消える仕組みに変更しています。後ほど『resetbox』オブジェクトのタグを変更します。

『MinusComboSm』スクリプトの入力ができたらヒエラルキーの中にある『musicbox.pink』の『>』を選択してからインスペクターに『MinusComboSm』スクリプトをドロップしてください。

ドロップしたらヒエラルキーの中にある『musicbox.pink』の『<』を選択して戻ります。

『musicbox.pink』のインスペクターにある『MinusComboSm』という項目の『Sm』の◉を選択して『combocounttext』を選択してください。

同じやり方で『musicbox.green』『musicbox.blue』『musicbox.orange』にスクリプトをドロップして『Sm』という項目を『combocounttext』にしてください。

『musicbox.bakudan』オブジェクトは『resetbox』に当たると残り続けてオブジェクトが渋滞してしまうため『musicbox.bakudan』も『resetbox』に衝突した時に消えるスクリプトを作成します。

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

以下に完成したスクリプトを掲載するのでコピーして入力してください。

『Destroy』スクリプトは、『resetbox』タグがついたオブジェクトと衝突した時にスクリプトをアタッチしているオブジェクトが消える仕組みになっています。

『Destroy』スクリプトの入力ができたらヒエラルキーの中にある『musicbox.bakudan』の『>』を選択してからインスペクターに『Destroy』スクリプトをドロップしてください。

ドロップしたらヒエラルキーの中にある『musicbox.bakudan』の『<』を選択して戻ります。

 

次に『resetbox』オブジェクトのタグを新規追加して『resetbox』に変更していきます。

新規追加は、タグの『▼』→『タグを追加』→『+』を選択して『NewTagName』に『resetbox』と入力して『Save』を選択してください。

もう一度『resetbox』オブジェクトのインスペクターにあるタグの『▼』を選択して『resetbox』というタグに変更してください。

これで音ゲーのコンボの数値を0にするスクリプトの作成・設定が完了しました。

 

 

実行ボタン▶を押して以下のようにコンボがカウントされたり0になるか確認してください。

 

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

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

今回は、音ゲーの『musicbox』と『collisionbox』が衝突するとコンボ数をカウントしたり0にする仕組みを作成しました。

スクリプトのコードは、仕組みを理解すると応用してゲームの中で何度も活用することができます。

次回は、第9回の「Unity C# 音ゲーの作り方9 Sliderをスコアに合わせて動かそう/リファクタリングのススメ」です。

Unity C# 音ゲーの作り方9 Sliderをスコアに合わせて動かそう/リファクタリングのススメ
今回はUnity C# 音ゲーの作り方講座の第9回目、「Sliderをスコアに合わせて動かそうをチュートリアル形式で説明していきます。 第7,8回目に『musicbox』が『collisionbox』に衝突した時に加点・減点・コンボの仕組...


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

コメント

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