代码检查:场景不存在
此检查可检测脚本在尝试通过名称或路径加载当前 Unity 项目中不存在的场景时的行为。 在项目中不存在的场景被加载时,会导致运行时错误。
运作方式
该检查会监控对场景管理方法的调用,例如 SceneManager.LoadScene、 SceneManager.LoadSceneAsync 和 EditorSceneManager.OpenScene。 会提取第一个实参,并检查其是否与项目中已知的场景资源匹配。
分析器会处理 Unity 引用场景的不同方式:
短名称:
"MyScene"相对路径:
"Scenes/MyScene"完整资源路径:
"Assets/Scenes/MyScene.unity"
如果在项目的资产数据库中完全找不到该场景,检查会触发器警告。
示例
在此示例中, "MissingScene" 字符串未匹配项目 资源 文件夹中的任何 .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日