1. はじめに
ゲームを作るとき、プレイヤーがリトライできる機能はとても便利ですよね。特に、アクションゲームやパズルゲームでは、失敗した後にすぐに再挑戦できることで、プレイ体験がより楽しくなります。
Unityでは、簡単なスクリプトとUIボタンを組み合わせるだけで、この「リトライ機能」を実現できます。今回のチュートリアルでは、リトライボタンを作成して、現在のシーンを再ロードする方法を初心者にも分かりやすく解説していきます。
Unityを触ったことがないという方はコチラの記事から見てみてください!
1. シーン再ロードの仕組み
Unityでは、シーンの管理や遷移を行うためにSceneManager
というクラスが用意されています。このクラスを利用すると、現在のシーンを再ロードして、ゲームを最初の状態に戻すことができます。
1. リトライボタンを作成する
ボタンを追加
- ヒエラルキーウィンドウでキャンバスを右クリックします。
- メニューから「UI」→「Button(Legacy)」を選択します。これでキャンバス(Canvas)とボタンが自動的に作成されます。
ボタンのテキストを変更
- ヒエラルキーウィンドウで新しく作成したボタンの子オブジェクト「Text」を選択します。
- インスペクターウィンドウでテキストを「リトライ」に変更します。
- この記事では、わかりやすいようにその他のオブジェクト(プレイヤーなど)を配置していますが、これらは任意で配置してください。

2. スクリプトを作成する
ステップ1: 新しいC#スクリプトを作成
- プロジェクトウィンドウで右クリックします。
- 「Create」>「C# Script」を選択して、新しいスクリプトを作成します。名前は「RetryButton」とします。
ステップ2: スクリプトにコードを追加
- 「RetryButton」スクリプトをダブルクリックして開き、以下のコードを追加します。
using UnityEngine;
using UnityEngine.SceneManagement;
public class RetryButton : MonoBehaviour
{
// この関数がボタンをクリックしたときに呼ばれます
public void RetryGame()
{
// 現在のシーンを再ロードします
SceneManager.LoadScene(SceneManager.GetActiveScene().name);
}
}
ステップ3: スクリプトをボタンにアタッチする
- ヒエラルキーウィンドウで「Retry」ボタンを選択します。
- インスペクターウィンドウで「Add Component」ボタンをクリックします。
- 「RetryButton」と検索して、追加します。
4. ボタンのクリックイベントを設定する
- ヒエラルキーウィンドウで「Retry」ボタンを選択します。
- インスペクターウィンドウの「Button (Script)」コンポーネントにある「On Click ()」セクションまでスクロールします。
- 「+」ボタンをクリックして新しいイベントを追加します。
- ヒエラルキーから「Retry」ボタンをドラッグして、イベントのオブジェクトフィールドにドロップします。
- ドロップダウンメニューから「RetryButton > RetryGame()」を選択します。
テストプレイ
作成したリトライボタンが正しく動作するかを確認する手順を説明します。以下の手順で動作をテストしましょう。
1. プレイモードを開始
- Unityエディターの上部にある「Play」ボタン(▶)をクリックしてプレイモードを開始します。
- シーンが開始され、ゲームが動作していることを確認します。
2. リトライボタンをクリック
- 作成したUIのリトライボタンが画面に表示されていることを確認します。
- リトライボタンをクリックします。
これで、プレイヤーがリトライボタンをクリックすると、現在のシーンが再ロードされ、ゲームがリスタートします。試してみてください!
あわせて読みたい
リトライボタンを使ってゲームをやり直す仕組みを作ったら、以下の記事もチェックして、より完成度の高いゲームを目指しましょう!
- 🔄 Unity初心者向け!タイムアップでPrefabを一括削除する方法を解説
→ 制限時間が過ぎたらゲームオブジェクトをまとめて削除!時間制コントロールの実装に便利です。 - 💾 Unity初心者必見!ハイスコアをセーブ&リセットする仕組みを作ろう
→ ゲームリセット時にスコアを保存・初期化したいなら必読! - 🕹 Unityで簡単!ボタンを押すたびにPrefabを順番に切り替える方法
→ UIを活用したボタン処理のバリエーションを学ぼう! - 🔁 Unity初心者向け!クリックで動きを一時停止&再開する方法
→ ゲームの一時停止・再開機能の導入にピッタリです。 - ⏱ Unityで簡単!n秒おきに繰り返し実行するスクリプトを作ろう
→ 一定間隔で動作するイベントを作りたいときにおすすめ!
よくある質問
- Q
SceneManager
が使えません。どうすればいいですか? - A
スクリプトの冒頭に
using UnityEngine.SceneManagement;
を追加してください。
- Q他のシーンをロードしたい場合はどうしますか?
- A
SceneManager.GetActiveScene().name
の代わりに、特定のシーン名をSceneManager.LoadScene("シーン名")
で指定してください。
- Qリトライボタンが動作しません。どうしたらよいですか?
- A
ボタンの「OnClick()」イベント設定が正しいか、アタッチしたオブジェクトと関数を再確認してください。