# 保存工作

> Understand how Unity saves your scenes, assets, and project settings.

Unity 将大多数保存的信息分为[场景更改](#SceneChanges)或[项目范围内的更改](#ProjectWideChanges)。

* 要保存所有场景更改和项目范围内的更改，请选择 **File** > **Save**（或 **Save as**）。
* 要保存项目范围内的更改，而不保存场景更改，请选择 **File** > **Save Project**。

**注意**：如果在 [Prefab Mode](/engine/6000.0/manual/working-in-unity/working-with-gameobjects/prefabs/editing-in-prefab-mode.md) 下编辑，则通过 **File** > **Save** 保存只会保存对打开的预制件的更改。退出预制件模式可保存范围更广的更改。

在编辑器中工作时，Unity 会自动保存一些信息。请参阅[自动保存](#ImmediateSaving)以了解更多详细信息。

## 场景更改

场景更改包括对场景中游戏对象的修改。例如：

* 添加、移动或删除游戏对象。
* 在 Inspector 中更改游戏对象的参数。

## 项目范围内的更改

Unity 中项目范围内的更改将应用于整个项目，而不是特定场景。例如，如果创建临时场景来测试更改，则可以保存项目而不是场景。

项目范围内的更改包括：

* **项目设置**：保存项目时，Unity 将对项目设置的更改保存在 `ProjectSettings` 文件夹中的以下文件中：

  * **输入**：`InputManager.asset`
  * **标签和层**：`TagManager.asset`
  * **音频**：`AudioManager.asset`
  * **时间**：`TimeManager.asset`
  * **播放器**：`ProjectSettings.asset`
  * **物理**：`DynamicsManager.asset`
  * **物理 2D**：`Physics2DSettings.asset`
  * **质量**：`QualitySettings.asset`
  * **图形**：`GraphicsSettings.asset`
  * **网络**：`NetworkManager.asset`
  * **编辑器**：`EditorUserSettings.asset`

* **构建配置文件**：Unity 将对平台配置文件和构建配置文件的更改作为资源保存在 `Library` 文件夹中。有关更多信息，请参阅[构建配置文件简介](/engine/6000.0/manual/unity-editor/editor-features/build-settings/build-profiles.md)。

* **更改的资源**：保存项目范围内的设置时，Unity 会保存所有未保存的资源。

  \*\*注意：\*\*某些资源类型在 Inspector 中有一个 **Apply** 按钮。除非选择 **Apply**，否则 Unity 不会保存这些资源。

* **Dirty 资源**：Unity 会保存 **Dirty** 资源，即磁盘上在软件中已修改但尚未保存的文件。您可以使用[自定义编辑器](/engine/6000.0/manual/working-in-unity/uitoolkits/guiscripting-guide/extending-the-editor/editor-custom-editors.md)和[脚本](/engine/6000.0/manual/scripting/get-started/creating-scripts.md)通过以下方式之一将资源标记为脏资源：

  * 将 [SerializedObject](/engine/6000.0/script-reference/unity-editor/serialized-object.md) 类与 [SerializedProperties](/engine/6000.0/script-reference/unity-editor/serialized-property.md) 结合使用。
  * 使用 [Undo](/engine/6000.0/script-reference/unity-editor/undo.md) 类来记录修改。
  * 使用 [SetDirty](/engine/6000.0/script-reference/unity-editor/editor-utility/set-dirty.md)。

## 自动保存

Unity 会自动将以下更改保存到磁盘：

* **新资源**：创建新资源时，Unity 会自动保存这些资源，但您需要保存后续的更改。

* **资源导入设置**：要使更改对大多数资源生效，需要在 Inspector 窗口中选择 **Apply**。选择 **Apply** 时，Unity 会保存更改。

* **烘焙数据**：在项目中将数据设置为 Baked 时，Unity 会在烘焙完成后保存此数据。这些信息包括：

  * 烘焙光照数据
  * 烘焙导航数据
  * 烘焙遮挡剔除数据

* **脚本执行顺序更改**：选择 **Apply** 后，Unity 会立即将此数据保存到每个脚本的 `.meta` 文件中。
