代码检查:场景在构建设置中被禁用
该检查会检测脚本尝试加载已存在于 Unity 项目中并已添加到构建设置但当前被禁用(未勾选)的场景。
在运行时加载已禁用场景会导致失败,因为 Unity 只会将启用的场景包含在最终构建中。
运作方式
该检查器会监控对场景管理方法的调用,如 SceneManager.LoadScene、 SceneManager.LoadSceneAsync 和 EditorSceneManager.OpenScene。
会分析场景名称或路径参数,确保其为字符串字面值。 随后会将其与 构建设置 中的场景列表进行核对。 如果在列表中找到场景但其复选框未选中(被禁用),检查会发出警告。
示例
在本示例中,假设 "Level2" 已在 构建设置中但当前被禁用。
using UnityEngine.SceneManagement;
public class SceneLoader : MonoBehaviour
{
void Start()
{
// Reported: Scene 'Level2' is disabled in build settings.
SceneManager.LoadScene("Level2");
}
}
using UnityEngine.SceneManagement;
public class SceneLoader : MonoBehaviour
{
void Start()
{
// "MainMenu" is enabled in Build Settings.
SceneManager.LoadScene("MainMenu");
}
}
快速修复
该检查提供了一个快速修复功能,允许直接在代码编辑器中启用场景。 会定位到 EditorBuildSettings.asset 文件,并修改与场景路径相匹配的条目,将其状态设置为启用。
2026年 5月 8日