代码检查:场景不存在
该检查用于检测脚本是否尝试通过名称或路径加载当前 Unity 项目中不存在的场景。 加载项目中不存在的场景会导致运行时错误。
运作方式
该检查器会监控对场景管理方法的调用,如 SceneManager.LoadScene、 SceneManager.LoadSceneAsync 和 EditorSceneManager.OpenScene。 它会提取第一个参数并检查其是否与项目中已知的场景资源匹配。
分析器能够处理 Unity 不同的场景引用方式:
短名称:
"MyScene"相对路径:
"Scenes/MyScene"完整资源路径:
"Assets/Scenes/MyScene.unity"
如果在项目的资源数据库中完全找不到该场景,则检查器会触发警告。
示例
在此示例中, "MissingScene" 字符串与项目 Assets 文件夹中的任何 .unity 文件都不匹配。
using UnityEngine;
using UnityEngine.SceneManagement;
public class SceneLoader : MonoBehaviour
{
void Start()
{
// Reported: "MissingScene" does not exist in the project
SceneManager.LoadScene("MissingScene");
}
}
using UnityEngine;
using UnityEngine.SceneManagement;
public class SceneLoader : MonoBehaviour
{
void Start()
{
// "MainMenu" must exist as a .unity file in the project
SceneManager.LoadScene("MainMenu");
}
}
2026年 5月 8日