fall and fall

ゲーム、プログラミング、二次創作のことなどを書いています。

Unity ゲームを終了させる方法(Unityエディターにも対応)

C#スクリプトで、Unity のゲームを終了させる方法を書いていきます。

1. コード

ゲームを終了させるプログラムは以下の通りです。

using UnityEngine;

public class App : MonoBehaviour {
  public void Quit() {
    #if UNITY_EDITOR
      UnityEditor.EditorApplication.isPlaying = false;
    #else
      Application.Quit();
    #endif
  }
}

2. コードの解説

#if, #else, #endif は条件付きコンパイルです。

Unityエディター(開発環境)の場合は、以下のコードで終了します。

UnityEditor.EditorApplication.isPlaying = false;

他のプラットフォームは、以下のコードで終了します。

Application.Quit();

3. 動作確認

以下の環境で、ゲームが終了することを確認しています。

4. ボタン押下時に終了する方法

以下の手順で、ボタンが押されたときにゲームを終了させることができます。

  1. Unity UI のボタンに、上のスクリプトをアタッチします。
  2. ヒエラルキーのボタンを、クリック時のオブジェクトに設定します。
  3. スクリプトのメソッドが実行されるように設定します。

5. キーの押下時に終了する方法

Escapeキーで終了する例は以下の通りです。

using UnityEngine;

public class App : MonoBehaviour {
  // Quit() は省略
  void Update() {
    if (Input.GetKeyDown(KeyCode.Escape)) {
      Quit();
    }
  }
}

上のスクリプトを、ヒエラルキーのオブジェクトにアタッチします。

これで、キーが押されたときにゲームが終了します。