---
title: セーフモード
product: Unity Editor
version: '6000.0'
latest_version: '7000.0'
status: This page documents version 6000.0. The latest version is 7000.0.
canonical: https://docs.unity.com/ja-jp/engine/6000.0/manual/scripting/debugging-and-diagnostics/safe-mode
latest_url: https://docs.unity.com/ja-jp/engine/7000.0/manual/scripting/debugging-and-diagnostics/safe-mode.md
generated_at: 2026-11-14T04:40:52.654Z
locale: ja-jp
---

# セーフモード

> Unity のセーフモードについて説明します。セーフモードは、プロジェクトにコンパイルエラーがある場合に Unity エディターが開始するモードです。

## 概要##overview

Unity のセーフモードは、スクリプトコンパイルエラーが発生したプロジェクトを開いたときに Unity エディターが開始できるモードです。セーフモードは、コンパイルエラーを解決するための最適な環境を提供するように設計されており、プロジェクトをすばやく機能ステートに戻すことができます。

セーフモードでは、Unity は機能が制限された最小限のエディターユーザーインターフェースを提供します。スクリプト関連のアセットのみをインポートし、スクリプト以外のアセット (モデル、マテリアル、テクスチャ、プレハブなど) のインポートは禁止します。これは、セーフモードはコンパイルエラーの解決のみを目的としたコンテンツ制作向けではないためです。

セーフモードでは、プロジェクトまたはそのパッケージからマネージコードを実行できません。つまり、[エディタースクリプト](/engine/6000.0/manual/uitoolkits/uielements/ui-imgui/extending-the-editor.md)、[アセットポストプロセッサー](/engine/6000.0/script-reference/unityeditor/assetpostprocessor.md)、[スクリプトインポーター](/engine/6000.0/manual/assets-and-media/import-assets/scripted-importers.md)などの独自のスクリプトは実行されません。セーフモードでは、[アセンブリオーバーライド](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-compilation/assembly-definition-files/class-assembly-definition-importer.md#assembly-references)、および [Burst](/engine/6000.0/manual/packages-list/packages-all/pack-safe/com-unity-burst.md) アナライザーと [Roslyn](/engine/6000.0/manual/scripting/debugging-and-diagnostics/roslyn-analyzers.md) アナライザーも無効になります。これにより、セーフモードのエディタは、非常に破損したステートのプロジェクトを開いた場合でも、常に完全に機能し、信頼性があります。

Unity は、コンパイル エラーがなくなったことを検出すると、自動的にセーフ モードを終了します。セーフモードが終了すると、Unity はプロジェクトを完全にインポートし、エディターは法線上の全機能を復元します。

## コンパイルエラーの一般的な原因##common-causes-of-compilation-errors

コンパイルエラーが発生する可能性がある一般的なシナリオは、次のような場合に発生します。

* プロジェクトを古いバージョンの Unity から新しいバージョンにアップグレードします。
* プロジェクトを作成したバージョンとは異なるバージョンの Unity で開く。
* 欠落している[パッケージ](/engine/6000.0/manual/packages-list.md)、または間違ったバージョンのパッケージでプロジェクトを開く。
* 独自のスクリプトでエラーが発生したプロジェクトを開きます。
* [Version Control](/engine/6000.0/manual/get-started/project-configuration/version-control.md) でプロジェクトを開き、最後にプルした変更にコンパイルエラーが含まれている。

コンパイルエラーが発生したプロジェクトをセーフモードなしで開くと、さまざまな問題が発生する可能性があります。例えば、プロジェクト内の[パッケージ](/engine/6000.0/manual/packages-list.md)が正しくロードまたは機能せず、アセットが正しくインポートされず、[ライブラリ](/engine/6000.0/manual/assets-and-media/import-assets/importing-assets.md#asset-processing)または[キャッシュサーバー](/engine/6000.0/manual/assets-and-media/importing-caching-assets/unity-accelerator.md)に正しくキャッシュされないアーティファクトが発生する可能性があります。

このような状況では、通常、プロジェクトの残りの部分のインポートを待たずにエラーを解決できます。セーフモードでは、これらのスクリプト関連の問題を自分で解決したり、Version Control を使用して、プロジェクトの完全なインポートを待たずにエラーを解決する新しいバージョンにプロジェクトを更新するためのツールが提供されます。

## セーフモードの開始##entering-safe-mode

コンパイルエラーが発生したプロジェクトを開くと、エディターはセーフモードを開始するかどうかを尋ねるダイアログを表示します。


**The Enter Safe Mode? dialog prompts you to enter Safe Mode when you open a project with compilation errors:**
![](/api/media?file=/engine/6000.0/media/images/SafeModeDialog.png)

この時点で 3 つの選択肢があります。

* **セーフモードに入る**
* エラーを**無視**してプロジェクトを開く
* Unity **終了**

ほとんどの場合、**Enter Safe Mode を**選択して、プロジェクトのエラーを解決します (または、Version Control で作業している場合は、エラーの修正を含む変更をプルします)。セーフモードは、コンパイルエラーを解決するために最適な環境を提供します。そのため、Unity がプロジェクトの残りの部分をインポートする前に、プロジェクトを機能ステートにすばやく戻すことができます。

ただし、セーフモードにしたくない場合があります。その場合は、Unity を**終了**するか、エラーを**無視**します。

> **Note:**
>
> \_このダイアログは ****編集 > Preferences > アセット パイプライン > Show Enter Safe Mode Dialog**** で使用不可にすることができます。このダイアログを使用不可にすると、コンパイルエラーが発生したプロジェクトを開くと、Unity は自動的にセーフモードに入ります。

### セーフモードを開始せずに終了する##quitting-without-entering-safe-mode

セーフモードはコンパイルエラーの修正専用に設計されています。Unityプロジェクトでチームの一員として作業しているが、エラーの原因となっているスクリプトに責任がなく、どうすればよいかわからない場合は、ダイアログで**終了**を選択し、チームのプログラマーに接触してアドバイスを受ける必要があります。

### エラーを無視してインポートを続行します##ignoring-the-errors-and-continuing-import

プロジェクトを使用可能なステートにしておく必要がない場合があります (例えば、古いプロジェクトを開いて一部のパーツをコピーしたり、単に構成を調べたりする場合)。この場合、エラーを無視して壊れたステートでプロジェクトを開くことができます。

**Ignore (無視**) を選択し、後でセーフモードでプロジェクトを開く場合は、Unity を一旦閉じてから再度開くと、Enter Safe Mode (セーフモードに入る) ダイアログに再度アクセスできます。

### コンパイルエラーを無視することの影響##implications-of-ignoring-compilation-errors

エラーを無視することを選択した場合、Unity は残りのアセットのインポートを続行し、プロジェクトを完全に開きます。ここで考えられる影響は以下のとおりです。

* プロジェクトが使用可能なステートになっていない可能性があります。エラーが解決するまで、再生モードにしたり、プロジェクトのビルドを作成できないことがあります。また、プロジェクト内のパッケージが正しくロードされない、またはまったくロードされない場合があります。

* Unity では、起動時に 1 回、プロジェクトのコンパイルエラーを解決した後の 2 回、アセットのインポートが必要な場合があります。これにより、プロジェクトを使用可能なステートでロードする時間が長くなります。

* プロジェクトで[スクリプタブルレンダーパイプライン](/engine/6000.0/manual/render-pipelines/scriptable-render-pipeline-introduction.md)を使用すると、レンダーパイプラインがロードされず、[エラーシェーダー](/engine/6000.0/manual/materials-and-shaders/shaders/shader-troubleshooting/shader-error.md)などの視覚的な問題が発生する場合があります。

* スクリプトコンパイルエラーは、プロジェクト内で二次的なエラーの原因となる場合があります。例えば、プロジェクト内の[スクリプトインポーター](/engine/6000.0/manual/assets-and-media/import-assets/scripted-importers.md)がコンパイルエラーのためにロードできない場合、アセットは誤ったステートでインポートされる可能性があります。

セーフモードは、これらの問題をすべて回避するヘルプとなるように設計されています。

## セーフモードのエディター##the-editor-in-safe-mode

セーフモードでは、Unity は機能が制限された最小限のエディターインターフェースを提供します。


**The Unity Editor in Safe Mode:**
![](/api/media?file=/engine/6000.0/media/images/SafeModeEditor.png)

Unity エディターでは、エディター上部のツールセクションにセーフモードのバナーが表示され、標準のエディターツールバーに置き換わります。ツールバーにはセーフモードであることが示され、残りのエラーを無視してセーフモードを終了できる**終了セーフモード**ボタンが表示されます。バナーは、プロジェクトで[プレビューパッケージ](/engine/6000.0/manual/packages-list/packages-all/pack-preview.md)が使用されているかどうかも示します。

Unity エディターはセーフモードでの[コードエディターとのインテグレーション](/engine/6000.0/manual/scripting/environment-and-tools/ide-support.md)が維持されるため、スクリプトアセットや[コンソールエラー](/engine/6000.0/manual/unity-editor/editor-windows-views-reference/console.md)[を](/engine/6000.0/manual/unity-editor/editor-windows-views-reference/console.md)ダブルクリックして関連するスクリプトを開くことができます。また、**「Assets**」メニューから C# プロジェクトを開くこともできます。また、[バージョン管理システム](/engine/6000.0/manual/get-started/project-configuration/version-control.md)とのインテグレーションも維持されます。

### セーフモードの制限された Windows セット##the-restricted-set-of-windows-in-safe-mode

セーフモードでは、一部の Windows ウィンドウがエディタに表示されます。これらは、次のとおりです。

* コンソール ウィンドウ
* Project ウィンドウ
* Inspector ウィンドウ
* Package Manager ウィンドウ

コンパイルエラーの修正に関連するため、これらのWindowsのみ使用可能です。セーフモードで他の Windows は使用できません。

### セーフモードのエディタメニュー##the-editor-menu-in-safe-mode

セーフモードでは、エディタのメインメニューで使用できるオプションは限られたセットに制限されます。スクリプトの操作に関連するメニュー オプションのみを表示して選択できます。他のコンテンツの作成と操作に使用する通常のオプションは使用できません。例えば、シーンを作成または開いたり、プリミティブ形状、ライト、カメラなどのスクリプト以外のアセットを作成したりすることはできません。Editor メニューと **コンポーネント** メニューは存在せず、**ウィンドウ**メニューは限られた一群の Windows のみを提供します。


**The restricted Editor Menu as it appears in Safe Mode, displaying the available options for creating assets.:**
![](/api/media?file=/engine/6000.0/media/images/SafeModeLimitedMenu.png)

### セーフモードの Project ウィンドウ##the-project-window-in-safe-mode

セーフモードでは、Project ウィンドウはセーフモード外の法線動作と比べて、いくつかの機能的な違いがあります。

主な違いは、コンパイル関連のアセットしか選択できないことです。他のアセットタイプは選択できません。それらは Project ウィンドウにグレーアウトされたエントリーとして表示されたままですが、選択や編集はできません。

具体的には、対話するコンパイル関連のアセットタイプは次のとおりです。

* C# ファイル (.cs)
* DLL ファイル (.dll)
* アセンブリ定義 (.asm)
* 反応ファイル (.rsp)
* ルールセットファイル (.ruleset)

また、選択できないアセットのアイコンには、アセットのコンテンツのプレビューは表示されません。代わりに、アセットのタイプを表すジェネリックアイコンが表示されます。


**The Project window displays generic icons for non-selectable assets.:**
![](/api/media?file=/engine/6000.0/media/images/SafeModeProjectWindow.png)

**作成 （+）** メニューボタンが無効になり、Project ウィンドウのコンテキストメニューで使用できるオプションが少なくなります。


**The create (+) menu button in the project window, disabled in Safe Mode:**
![](/api/media?file=/engine/6000.0/media/images/SafeModeCreateButton.png)

## セーフモードの終了##exiting-safe-mode

すべてのコンパイルエラーが解決されると、Unity は自動的にセーフモードを終了します。Unity はプロジェクトを開き、アセットをインポートします。

コンパイルエラーが残っている状態でセーフモードを終了するには、セーフモードツールバーの\*\*「セーフモード終了\*\*」ボタンを選択します。これは推奨されません (「 [コンパイルエラー無視の影響](/engine/6000.0/manual/scripting/debugging-and-diagnostics/safe-mode.md#IgnoringErrors) 」を参照)。Unity は決定を確認するダイアログを表示します。


**The Exit Safe Mode button in the Safe Mode toolbar:**
![](/api/media?file=/engine/6000.0/media/images/SafeModeExitButton.png)

プロジェクトにエラーが残っている状態でセーフモードを終了し、後でセーフモードに戻りたい場合は、Unity を一旦閉じてから再度開くと、Enter Safe Mode ダイアログに再度アクセスできます。

## バッチモードでのセーフモード##safe-mode-in-batch-mode

バッチモードでは、プロジェクトにコンパイルエラーがある場合、`-ignoreCompilerErrors` [コマンドライン引数](/engine/6000.0/manual/unity-editor/command-line-arguments.md)を使用しない限り、Unity は自動的に終了します。
