スポンサーリンク
Unity C#・スクリプト実装

Unityで簡単!リトライボタンを作成してゲームを再スタートする方法

Unity C#・スクリプト実装

1. はじめに

ゲーム制作をしていると、
「ミスしたらすぐやり直したい」「何度も挑戦できるようにしたい」
そんなリトライ機能を実装したくなりますよね。

特にアクションゲームやパズルゲームでは、リトライできるかどうかで遊びやすさやテンポが大きく変わります
とはいえ、「Unityでどうやって作るの?」「シーンの再スタートって難しそう…」と感じている方も多いはずです。

この記事では、Unity初心者でも簡単にできるリトライボタンの作り方を、
UIボタンとシンプルなC#スクリプトだけで解説します。
ボタンを押すと現在のシーンを再ロードしてゲームを最初からやり直す、基本的で実用性の高い方法です。

Unityを触ったばかりの方でも理解できる内容なので、
まだUnityに慣れていない場合は、まずは基礎から確認してみてください。

1. シーン再ロードの仕組み

Unityでは、シーンの管理や遷移を行うためにSceneManagerというクラスが用意されています。このクラスを利用すると、現在のシーンを再ロードして、ゲームを最初の状態に戻すことができます。



1. リトライボタンを作成する

ボタンを追加

  1. ヒエラルキーウィンドウでキャンバスを右クリックします。
  2. メニューから「UI」→「Button(Legacy)」を選択します。これでキャンバス(Canvas)とボタンが自動的に作成されます。

ボタンのテキストを変更

  1. ヒエラルキーウィンドウで新しく作成したボタンの子オブジェクト「Text」を選択します。
  2. インスペクターウィンドウでテキストを「リトライ」に変更します。
  3. この記事では、わかりやすいようにその他のオブジェクト(プレイヤーなど)を配置していますが、これらは任意で配置してください。



2. スクリプトを作成する

ステップ1: 新しいC#スクリプトを作成

  1. プロジェクトウィンドウで右クリックします。
  2. 「Create」>「C# Script」を選択して、新しいスクリプトを作成します。名前は「RetryButton」とします。

ステップ2: スクリプトにコードを追加

  1. 「RetryButton」スクリプトをダブルクリックして開き、以下のコードを追加します。
using UnityEngine;
using UnityEngine.SceneManagement;

public class RetryButton : MonoBehaviour
{
    // この関数がボタンをクリックしたときに呼ばれます
    public void RetryGame()
    {
        // 現在のシーンを再ロードします
        SceneManager.LoadScene(SceneManager.GetActiveScene().name);
    }
}

ステップ3: スクリプトをボタンにアタッチする

  1. ヒエラルキーウィンドウで「Retry」ボタンを選択します。
  2. インスペクターウィンドウで「Add Component」ボタンをクリックします。
  3. 「RetryButton」と検索して、追加します。



4. ボタンのクリックイベントを設定する

  1. ヒエラルキーウィンドウで「Retry」ボタンを選択します。
  2. インスペクターウィンドウの「Button (Script)」コンポーネントにある「On Click ()」セクションまでスクロールします。
  3. 「+」ボタンをクリックして新しいイベントを追加します。
  4. ヒエラルキーから「Retry」ボタンをドラッグして、イベントのオブジェクトフィールドにドロップします。
  5. ドロップダウンメニューから「RetryButton > RetryGame()」を選択します。



テストプレイ

作成したリトライボタンが正しく動作するかを確認する手順を説明します。以下の手順で動作をテストしましょう。


1. プレイモードを開始

  1. Unityエディターの上部にある「Play」ボタン(▶)をクリックしてプレイモードを開始します。
  2. シーンが開始され、ゲームが動作していることを確認します。

2. リトライボタンをクリック

  1. 作成したUIのリトライボタンが画面に表示されていることを確認します。
  2. リトライボタンをクリックします。

これで、プレイヤーがリトライボタンをクリックすると、現在のシーンが再ロードされ、ゲームがリスタートします。試してみてください!



あわせて読みたい

リトライボタンを使ってゲームをやり直す仕組みを作ったら、以下の記事もチェックして、より完成度の高いゲームを目指しましょう!


よくある質問

Q
SceneManagerが使えません。どうすればいいですか?
A

スクリプトの冒頭にusing UnityEngine.SceneManagement;を追加してください。

Q
他のシーンをロードしたい場合はどうしますか?
A

SceneManager.GetActiveScene().nameの代わりに、特定のシーン名をSceneManager.LoadScene("シーン名")で指定してください。

Q
リトライボタンが動作しません。どうしたらよいですか?
A

ボタンの「OnClick()」イベント設定が正しいか、アタッチしたオブジェクトと関数を再確認してください。

※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。

※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。

スポンサーリンク