【Unity】アプリケーションを終了させる方法

2025年4月14日

Uniyエディターで実行している時と、ビルドされたアプリをPCで実行している時の終了方法は異なります

アプリを終了したい時のコード

終了処理時に次のスクリプトを実行させます

#if UNITY_EDITOR
    EditorApplication.isPlaying = false;
#elif UNITY_STANDALONE
    Application.Quit();
#endif

このコードは、Unityの環境下で実行された場合に、アプリケーションの実行を終了させるためのものです。

Unity Editor内でプレビュー実行された場合には、EditorApplication.isPlayingプロパティをfalseに設定してアプリケーションの実行を停止します。

一方、実際にビルドして実行された場合には、Application.Quitメソッドを呼び出してアプリケーションの実行を終了します。

#ifディレクティブは、コンパイル時に指定されたシンボルが定義されている場合に、そのコードブロックをコンパイルすることを示します。この場合、UNITY_EDITORとUNITY_STANDALONEが指定されているため、それぞれの環境下でコンパイルされるコードが切り替わります。UNITY_EDITORはUnity Editor内でのプレビュー実行時に定義され、UNITY_STANDALONEはビルドした環境での実行時に定義されます。

using UnityEngine;

public class Exit : MonoBehaviour
{
    // Escapeキーの押下でゲームを終了する
    // Updateメソッドは毎フレーム呼ばれるので、Updateメソッド内でキー入力を監視する
    [SerializeField]
    private KeyCode exitKey = KeyCode.Escape; // ゲーム終了キー
                                              // ゲーム終了キーを押したら、アプリケーションを終了する
    private void Update()
    {
        if (Input.GetKeyDown(exitKey))
        {
            // エディタ上で実行している場合は、エディタを終了する
#if UNITY_EDITOR
            UnityEditor.EditorApplication.isPlaying = false;
#elif UNITY_STANDALONE
               // スタンドアロンビルドの場合は、アプリケーションを終了する
               Application.Quit();
#endif
        }
    }
}

参考

Unity

Posted by hidepon