![赤かぶくん](https://matsubon-games.com/wp-content/uploads/2023/09/6b85b3a2158d8f6c63f5f6c70765c967-150x150.png)
何か簡単なゲームを作りたい。
ボタン連打ゲームはどうやって作るの?
![まつぼん](https://matsubon-games.com/wp-content/uploads/2023/09/1539b9fb9655e07f9c165619bb313053.png)
そんなお悩みにお答えします!
ボタン連打ゲームは、開発難易度も低く、個人ゲーム開発初心者が作りやすいジャンルです。
本記事では、Unityで簡単なボタン連打ゲームの作り方をご紹介したいと思います。
また、ハイスコアを保存しゲーム再開時に表示する機能もご紹介します。
環境
Unity バージョン:2020.3.46f1
Unity Hub バージョン:3.7.0
ボタン連打ゲームのゲーム画面
ボタン連打ゲームのゲーム画面はこちらです。
![](https://matsubon-games.com/wp-content/uploads/2024/02/e00a620a12e6cac7bc99f3a325784cc3.png)
10秒の間にどれだけボタンを連打できるかを競うゲームです。
ハイスコアを保存して、ゲーム再開後にハイスコアを表示できるようにします。
ボタン連打ゲームの作り方
ボタン連打ゲームの作り方は、下記のとおりです。
- プロジェクト作成
- UI作成
- スクリプト作成
- セーブ機能実装
詳細を順番にご説明します。
プロジェクト作成
まず、プロジェクトを作成しましょう。
Unity Hubを開いて、「新しいプロジェクト」をクリックしてください。
![プロジェクト画面 新しいプロジェクト](https://matsubon-games.com/wp-content/uploads/2024/02/8c0c3027e3cfc3d644caab3847a505b0-3.png)
テンプレートは「2Dコア」を選択。
プロジェクト名は「TestButtonClick」とします。
「プロジェクトを作成」をクリックしましょう。
![](https://matsubon-games.com/wp-content/uploads/2024/02/6601c20ab96b9093a51dfbcb55930eae.png)
そうすると、Unityエディターが開きます。
プロジェクト画面には「TestButtonClick」が追加されています。
![](https://matsubon-games.com/wp-content/uploads/2024/02/747b69d90fdf3b7b53bbb27671a522b2-1.png)
UI作成
まず、Canvasを作成します。
Canvasはボタンやテキストなど各UIを配置する土台となります。
Hierarchy画面左上「+」をクリックし、「UI」→「Canvas」を選択しましょう。
![](https://matsubon-games.com/wp-content/uploads/2024/02/0d40a5e4a645fc6b96e767d64ac0878e-5.png)
Hierarchy画面に「Canvas」が作られます。
![](https://matsubon-games.com/wp-content/uploads/2024/02/830a8fe13da6ab3c068a3391d612fdab.png)
次に、Canvasのサイズを調節しましょう。
現在、Canvasのサイズがゲーム画面に比べてとても大きい状態なので、カメラが移す範囲内に収まるようにします。
「Render Mode」から「Screen Space – Camera」を選択、「Render Camera」にHierarchy画面の「Main Camera」をドラッグ&ドロップします。
あと、今後配置するUIのサイズも調節しましょう。
今回は横幅960、縦幅540の画面サイズを基本として、ゲームを出力時に画面サイズが変更になっても、UIが崩れないようにします。
「UI Scale Mode」から「Scale With Screen Size」を選択、「Reference Resolution」の「X」に「960」、「Y」に「540」を入力、「Screen Match Mode」から「Expand」を選択しましょう。
![](https://matsubon-games.com/wp-content/uploads/2024/03/8c288c85788eda9727baf866734c3f5b.png)
それではボタンを配置していきましょう。
「Canvas」を右クリック→「UI」→「Button」を選択します。
![](https://matsubon-games.com/wp-content/uploads/2024/02/0d40a5e4a645fc6b96e767d64ac0878e-6.png)
Hierarchy画面に「Button」が生成されます。
![](https://matsubon-games.com/wp-content/uploads/2024/02/1facfa22d2575871988ae65d39a2851b.png)
「Button」をクリックすると、Inspector画面に詳細が表示されます。
Pos Yを-100、 Widthを160、 Heightを80 に変更しましょう。
![](https://matsubon-games.com/wp-content/uploads/2024/02/ab49d40c7b3262fe33e23091502aea20.png)
タイム、ハイスコア、スコアの各テキストを配置します。
「Canvas」を右クリック→「UI」→「Text」を選択しましょう。
![](https://matsubon-games.com/wp-content/uploads/2024/02/0d40a5e4a645fc6b96e767d64ac0878e-7.png)
Hierarchy画面に「Text」が生成されます。
![](https://matsubon-games.com/wp-content/uploads/2024/02/2393510a973be35ef47b1312c4fa0e91.png)
「Text」を右クリック→「Rename」→名前を「TimeText」とします。
「TimeText」をクリックすると、Inspector画面に詳細が表示されます。
Pos Yを100、 Widthを160、 Heightを30、 Textをタイム:10、 Font Sizeを100、 Best Fitにチェックを入れる、 Colarを白 に変更しましょう。
![](https://matsubon-games.com/wp-content/uploads/2024/02/4eb16ad4a76c7800e6f4a71354ffa090-1.png)
同様に、ハイスコアとスコアのテキストを配置します。
「HighScoreText」のInspector画面は以下の通り入力してください。
「TimeText」との違いは、Pos Yを50、 Textをハイスコア:0 の2点です。
![](https://matsubon-games.com/wp-content/uploads/2024/02/f9f811063bf437db8961ab78903cfad5.png)
「CountText」のInspector画面は以下の通り入力してください。
「TimeText」との違いは、Pos Yを0、 Textをスコア:0 の2点です。
![](https://matsubon-games.com/wp-content/uploads/2024/02/a1d0b9924ad01b288edb09aa49b574ec.png)
ここまでの作業で、Hierarchy画面はこちらのようになります。
![](https://matsubon-games.com/wp-content/uploads/2024/02/617a4bf6ffaba1c886a71ee7f18538dc.png)
Game画面はこんな感じです。
![](https://matsubon-games.com/wp-content/uploads/2024/02/1ae57f524a7cef45d3205027851e2930.png)
スクリプト作成
今度はスクリプトを作っていきましょう。
まず、Project画面の「+」をクリック→「C# Script」を選択します。
![](https://matsubon-games.com/wp-content/uploads/2024/02/19c413f6eebc59c3e919ab818ac4d562.png)
![](https://matsubon-games.com/wp-content/uploads/2024/02/0d40a5e4a645fc6b96e767d64ac0878e-8.png)
スクリプトファイルが出来るので、名前を「ClickManager」とします。
![](https://matsubon-games.com/wp-content/uploads/2024/02/e32e0f7109ee3887d002e23cb2987931.png)
このファイルに、以下のコードを記述してください。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ClickManager : MonoBehaviour
{
//カウント用の変数を用意
public int count = 0;
//テキスト型の変数を用意。スコア表示
public Text countText;
//float型の変数を用意
public float time = 10.0f;
//テキスト型の変数を用意。タイム表示
public Text timeText;
//ハイスコア用の変数を用意
public int highScore = 0;
//テキスト型の変数を用意。ハイスコア表示
public Text highScoreText;
//変数を増やす関数を作成
public void PushButton()
{
//timeが0より上の時
if (time >0)
{
//countを1ずつ増やす
count++;
//増えた数字をテキストで表示
countText.text = "スコア:" + count;
}
}
// Start is called before the first frame update
void Start()
{
// "HIGHSCORE"をキーとして、ハイスコアを取得。値がない場合は0となる
highScore = PlayerPrefs.GetInt("HIGHSCORE", 0);
//ハイスコアをテキストで表示
highScoreText.text = "ハイスコア:" + highScore;
}
// Update is called once per frame
void Update()
{
//timeが0以下の時
if (time <= 0)
{
//テキストにカウントダウンの表示をする
timeText.text = "タイム:0.00";
}
else
{
//カウントダウンさせる
time -= Time.deltaTime;
//テキストにカウントダウンの表示をする
timeText.text = "タイム:" + time.ToString("f2");
}
//ハイスコアを超えた場合に更新
if (highScore < count)
{
highScore = count;
Debug.Log(highScore);
//ハイスコアをテキストで表示
highScoreText.text = "ハイスコア:" + highScore;
//"HIGHSCORE"をキーとして、ハイスコアを保存
PlayerPrefs.SetInt("HIGHSCORE", highScore);
//ディスクへの書き込み
PlayerPrefs.Save();
}
}
}
ハイスコアを保存し、ゲーム再開時に表示するため、Player Prefsを使用しています。
上記の黄色いアンダーバーに相当した部分です。
次に、Hierarchy画面の「+」をクリック→「Create Empty」を選択します。
![](https://matsubon-games.com/wp-content/uploads/2024/02/0d40a5e4a645fc6b96e767d64ac0878e-9.png)
空のゲームオブジェクトが出来るので、名前を「ClickManager」とします。
![](https://matsubon-games.com/wp-content/uploads/2024/02/f1d14e5487079ea1edb0f4093c6f57da.png)
スクリプトファイルをゲームオブジェクトにアタッチします。
![](https://matsubon-games.com/wp-content/uploads/2024/02/be159f3c9c9842beb2e7b7a22ef9e3c1.png)
「ClickManager」のInspector画面で、以下の通りそれぞれアタッチしてください。
![](https://matsubon-games.com/wp-content/uploads/2024/02/28aa77b3aa5d4e5b611b86cc60cb4ef6.png)
最後に、ボタンにスクリプトの関数をアタッチしましょう。
「Button」のInspector画面で、「On Click ()」の「+」をクリックします。
![](https://matsubon-games.com/wp-content/uploads/2024/02/f8db6b292627ae3c360242bf4532fae1.png)
ClickManagerをアタッチします。
![](https://matsubon-games.com/wp-content/uploads/2024/02/53bdd8c434c1d76542fa0cccb3fc8aac.png)
「No Function」→「ClickManager」→「Push Button ()」を選択します。
![](https://matsubon-games.com/wp-content/uploads/2024/02/0d40a5e4a645fc6b96e767d64ac0878e-10.png)
これで、ボタン連打ゲームが完成しました。
お疲れさまでした。
セーブ機能実装
セーブ機能を実装するには、下記の方法があります。
- Player Prefs
- Easy Save
今回は、Player Prefsを使ってハイスコアを保存しゲーム再開時に表示できるようにしました。
上記、スクリプトの黄色いアンダーバーの部分になります。
一方、Easy Saveは保存できる型が多い、オートセーブができるなど利点が多くあります。
有料ではありますが、個人ゲーム開発初心者にはEasy Saveをおすすめします。
Easy Saveを使ったセーブ機能実装方法については、こちらの記事をご参考ください。
【Unity】ボタン連打ゲームの作り方 ハイスコアを保存する方法 まとめ
![まとめアイキャッチ](https://matsubon-games.com/wp-content/uploads/2024/03/5efcb8ffe5fab49fac82af23a91d51a5-1024x538.jpg)
本記事では、Unityでボタン連打ゲームの作り方とハイスコアを保存する方法をご紹介しました。
ボタン連打ゲームは比較的簡単に作れるので、個人ゲーム開発初心者にうってつけのジャンルです。
手順どおりにすれば出来るので、ぜひ作ってみてくださいね。
本記事が、皆さんの参考になれば幸いです。