---
title: Safe模式
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/zh-cn/engine/6000.0/manual/scripting/debugging-and-diagnostics/safe-mode
latest_url: https://docs.unity.com/zh-cn/engine/7000.0/manual/scripting/debugging-and-diagnostics/safe-mode.md
generated_at: 2026-11-14T04:48:27.530Z
locale: zh-cn
---

# Safe模式

> 了解 Unity 的Safe模式，如果Project中存在编译错误，Unity Editor 会进入该模式。

## 概览##overview

Unity 的Safe模式是指WOpennO脚本编译本编译Projectject Unity Editor 可以进入的模式。Safe模式旨在提供解决编译错误的最佳Environment，以便可以快速将Project返回到正常运行状态。

在 Safe 模式下，Unity 提供 Editor 用户界面的最低版本，功能有限。它仅导入与脚本相关的 Assets，并防止导入非脚本 Assets（例如模型、Materials、Textures 和预制件）。这是因为 Safe 模式不适用于内容制作，仅用于解决编译错误。

Safe模式绝不允许Managed代码从Project或其包中运行。这意味着您自己的脚本（如 [Editor 脚本](/engine/6000.0/manual/uitoolkits/uielements/ui-imgui/extending-the-editor.md)、[资源 POST 处理器](/engine/6000.0/script-reference/unityeditor/assetpostprocessor.md)和[脚本导入器](/engine/6000.0/manual/assets-and-media/import-assets/scripted-importers.md)）无法运行。Safe 模式还禁用[程序集覆盖](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-compilation/assembly-definition-files/class-assembly-definition-importer.md#assembly-references)以及[爆发](/engine/6000.0/manual/packages-list/packages-all/pack-safe/com-unity-burst.md)和[罗斯林](/engine/6000.0/manual/scripting/debugging-and-diagnostics/roslyn-analyzers.md)分析器。这样可确保 Safe 模式下的 Editor 始终完整可靠，即使当它以非常中断的状态打开项目时也是如此。

Unity 检测到不再有编译错误When，会自动退出Safe模式。退出Safe模式When，Unity 会完整导入Project，而 Editor 会恢复其法线的完整功能。

## 编译错误的常见原因##common-causes-of-compilation-errors

以下情况When可能会出现一些可能result编译错误的常见情况：

* 将Project从旧版本的 Unity 升级到更高版本。
* 使用与创建项目的版本不同的 Unity 版本OpenProject。
* 打开缺少[包](/engine/6000.0/manual/packages-list.md)或包版本不正确的项目。
* Open 您自己的脚本中有错误的 Project。
* 在[版本控制](/engine/6000.0/manual/get-started/project-configuration/version-control.md)下打开一个项目，其中您拉取的最新更改包含编译错误。

在没有 Safe 模式的情况下打开存在编译错误的 Project 可能会导致多种问题。例如，Project 中的[包](/engine/6000.0/manual/packages-list.md)可能无法正确加载或函数，Assets 的导入可能不正确，导致[库](/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)中的缓存瑕疵不正确。

在这些情况下，您通常不希望等待Project的REST部分导入后才能解决错误。Safe 模式为您提供了工具，可自行解决这些脚本相关问题，或使用版本控制将项目更新到可解决错误的更高版本，而无需等待项目的完整导入。

## 进入Safe模式##entering-safe-mode

Open存在编译错误的ProjectWhen，Editor 会显示一个对话框，询问是否要进入Safe模式：


**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)

在这点上有三个选择：

* **进入 Safe 模式**
* **忽略**错误并打开 Project
* **退出** Unity

在大多数情况下，您应该选择 **进入 Safe 模式** 来解决 Project 中的错误（或者，如果您使用版本控制，可以拉取包含错误修复的更改）。Safe模式为解决编译错误提供了最佳Environment，因此您可以在 Unity 导入Project的REST部分之前快速将Project返回到正常运行状态。

但是，在某些情况下，您可能不想进入 Safe 模式，在这种情况下，您可以**退出** Unity，或**忽略**错误。

> **Note:**
>
> *您可以在 ****编辑 > 偏好 > 资源 管道 > Show 进入 Safe 模式 Dialog**** 中禁用用此对话框。如果禁用对话框，Unity 会在打开出现编译错误的ProjectWhen自动进入Safe模式。*

### 退出而不进入 Safe 模式##quitting-without-entering-safe-mode

Safe 模式专门用于修复编译错误。如果您作为 Team 的一部分处理 Unity Project，但您不负责导致错误的脚本，并且不知道该怎么办，则应在对话框中选择 \*\*Quit \*\*，并联系 ON Team 的工程师以寻求建议。

### 忽略错误并继续导入##ignoring-the-errors-and-continuing-import

在某些情况下，不需要Project处于可用状态（例如，如果要打开旧Project以复制某些部分，或只是检查其Configured）。在这种情况下，无论如何都可以忽略错误并以中断状态OpenProject。

如果选择 **Ignore**，然后想以 Safe 模式打开项目，可以关闭并重新 Open Unity 以再次访问“进入 Safe 模式”对话框。

### 忽略编译错误的影响##implications-of-ignoring-compilation-errors

如果选择忽略错误，Unity 将继续导入 REST Assets 并完全打开 Project。此处的潜在影响包括：

* 您的 Project 可能未处于可用状态。在解决错误之前，可能无法进入播放模式或创建Project的构建版本。此外，Project中的Any包可能无法正确加载，或者All无法加载。

* Unity 可能需要导入两次Assets：一次在启动时，另一次在解决Project的编译错误后。这会增加以可用状态加载项目所需的时间量。

* 如果 Project 使用可[可编程渲染管线](/engine/6000.0/manual/render-pipelines/scriptable-render-pipeline-introduction.md)，则渲染管线可能无法加载，从而导致[报错着色器](/engine/6000.0/manual/materials-and-shaders/shaders/shader-troubleshooting/shader-error.md)等视觉问题。

* 脚本编译错误可能导致 Project 中的次要错误。例如，如果由于编译错误而无法加载 Project 中的 [Scripted Importer](/engine/6000.0/manual/assets-and-media/import-assets/scripted-importers.md)，则 Assets 可能以不正确的状态导入。

Safe模式旨在帮助您避免All这些问题。

## Safe 模式下的 Editor##the-editor-in-safe-mode

在 Safe 模式下，Unity 提供了具有有限功能的最小 Editor 接口。


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

Unity Editor 在 Editor 顶部工具栏栏部分显示一个Safe模式横幅，取代了标准 Editor 工工具栏。工具栏指示处于 Safe 模式，并提供 **Exit Safe Mode** 按钮，可忽略剩余的错误并退出 Safe 模式。横幅还指示 Project 是否使用[预览包](/engine/6000.0/manual/packages-list/packages-all/pack-preview.md)。

Unity Editor 在 Safe 模式下保持[与代码编辑器](/engine/6000.0/manual/scripting/environment-and-tools/ide-support.md)的集成，因此您可以双击 ON 脚本 Assets 或[控制台报错](/engine/6000.0/manual/unity-editor/editor-windows-views-reference/console.md)[的](/engine/6000.0/manual/unity-editor/editor-windows-views-reference/console.md)脚本来 Open 其关联脚本，并可通过 **Assets** 菜单 Open C# Project。它还保持与[版本控制系统](/engine/6000.0/manual/get-started/project-configuration/version-control.md)的集成。

### Safe 模式下的受限 Windows 设置##the-restricted-set-of-windows-in-safe-mode

Editor 在 Safe 模式下显示有限的 Windows 选择。它们是：

* 控制台窗口
* 项目窗口
* Inspector 窗口
* 在“Package Manager（包管理器）”窗口中，执行以下操作：

这些是唯一可用的 Windows，因为它们与修复编译错误相关。在Safe模式下没有OtherWindows可用。

### Safe 模式下的 Editor 菜单##the-editor-menu-in-safe-mode

在Safe模式下，Editor菜单单中的可用选项仅限于一设置。只能查看和选择与使用脚本相关的菜单选项；用于创建和使用Other内容的常规选项不可用。例如，无法创建或 Open 场景，或创建原始形状、光线或相机等非脚本 Assets。Editor 和**组件**菜单不存在，**Window** 菜单仅提供有限的 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)

### Safe 模式下的项目窗口##the-project-window-in-safe-mode

在 Safe 模式下，项目窗口与 Safe 模式之外的法线行为相比有一些功能差异。

主要区别在于只能选择与编译相关的 Assets。Other 资源类型不可选择。它们在 项目窗口中仍然显示为灰色条目，但无法选择或编辑它们。

具体而言，可以交互的编译相关资源类型包括：

* C# 文件 (.cs)
* DLL 文件 (.dll)
* 程序集定义 (.asm)
* 响应文件 (.rsp)
* 规则集文件 (.ruleset)

此外，不可选择Assets的图标不会显示资源内容的预览。相反，它们会显示一个Generic图标来表示资源的类型。


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

**创建 (+)** 菜单按钮已禁用，项目窗口上下文菜单的可用选项设置有所减少。


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

## 退出Safe模式##exiting-safe-mode

解决All编译错误When，Unity 会自动退出Safe模式。然后，Unity 继续OpenProject并导入Assets。

要在仍然存在编译错误时退出 Safe 模式，请选择 Safe 模式工具栏中的 **Exit Safe Mode** 按钮。不建议这样做（请参阅[忽略编译错误的影响](/engine/6000.0/manual/scripting/debugging-and-diagnostics/safe-mode.md#IgnoringErrors)），Unity 会通过对话框提示您确认您的 Decision。


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

如果退出 Safe 模式时项目中仍然存在错误，但稍后希望返回 Safe 模式，则可以关闭并重新 Open Unity 以再次访问“进入 Safe 模式”对话框。

## 批次模式下的 Safe 模式##safe-mode-in-batch-mode

在批次模式下，如果 Project 中存在编译错误，Unity 会自动退出，除非使用 `-ignoreCompilerErrors` [命令行参数](/engine/6000.0/manual/unity-editor/command-line-arguments.md)。
