Unity C# 音ゲーの作り方7 スコアをカウントするスクリプトを作成しよう | Unity入門の森 ゲームの作り方

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

Unity C# 音ゲーの作り方


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

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

前回は音源データをゲームに組み込み、音ノーツを生成して流れる処理とタイミングよく叩くと音が鳴るし仕組みを作りました。

前回の記事:

Unity 音ゲーの作り方6 音源データを準備/ノーツが音を鳴らして消える処理を作ろう
今回は、Unity C# 音ゲーの作り方講座の第6回目ではノーツの役割を持つmusicboxゲームオブジェクトが音を鳴らして消える処理をチュートリアル形式で作っていきます。 前回の記事「Unity C# 音ゲーの作り方5 音ノーツが自動で流...

今回は音ノーツである『musicbox』と『collisionbox』が衝突するとスコアが加点される仕組みを作っていきます。

加点だけでなく減点される仕組みとその実装方法についても説明していきます。

また、TextMeshProを活用したメッセージ表示もマスターしていきましょう。


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

音ゲーの『musicbox』と『collisionbox』を衝突させて得点を発生させよう

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

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

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

本講座の音ゲーには、加点だけでなく『musicbox.bakudan』が『collisionbox』に衝突すると減点される仕組みもあります。

そのため、『musicbox.bakudan』と『collisionbox』が衝突した時の減点を管理するスクリプトも作成していきます。

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

スムーズに設定を行えるように発生した点数の数値をテキストオブジェクトに反映させるスクリプトから作成していきます。

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

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

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

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

 

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

スクリプトでテキストオブジェクトを操作するときは『using UnityEngine.UI;』が必要ですが、音ゲーはTextMeshProを使用している為『using TMPro;』が必要になります。

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

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

 

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

インスペクターにある『Scoretext』の中の『Scorecounttext』という項目の◉を選択して『scorecounttext』を選択してください。

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

音ゲーの加点と減点を管理するスクリプトを作成しよう

音ゲーの加点と減点を管理するスクリプトを作成していきます。

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

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

 

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

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

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

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

 

ドロップしたらヒエラルキーの中にある『musicbox.pink』の『<』を選択してください。

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

 

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

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

続いて音ゲーの減点を管理するスクリプトの作成を説明していきます。

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

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

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

『MinusScoreSm』スクリプトは『ScoreSm』スクリプトの内容とほとんど変わりませんが、『musicbox.bakudan』と『collisionbox』が衝突した時に得点がマイナスになるように『-= 5』と変更しています。

 

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

 

ドロップしたらヒエラルキーの中にある『musicbox.bakudan』の『<』を選択してください。

『musicbox.pbakudan』のインスペクターに『MinusScoreSm』という項目の中に『Sm』の◉を選択して『scorecounttext』を選択してください。

 

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

それでは、実行ボタン▶を押して『musicbox』と『collisionbox』が衝突すると以下のように得点が増減するか確認してください。

 

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

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

今回は、音ゲーの『musicbox』と『collisionbox』が衝突するとスコアが加点・減点される仕組みを作成しました。

スクリプトの作成が増えると、各スクリプトがどのような機能なのか混乱しやすくなるためコマンドの活用や名前の付け方は大切です。

次回は、第8回の「Unity C# 音ゲーの作り方8 コンボをカウントするスクリプトを作成しよう」です。

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


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

コメント

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