【问题标题】:Unity scene objects missing from hierarchy whilst running a play-mode test运行播放模式测试时,层次结构中缺少 Unity 场景对象
【发布时间】:2022-06-19 22:40:45
【问题描述】:

在 Unity 的播放模式测试期间,我的场景和对象未按预期加载时遇到一些问题,我希望有人可以帮助我诊断此问题。

我有一个简单的场景,其中包含一些对象,例如 Text 和 InputField,在手动单击播放后,可以与这些对象进行交互,并通过层次结构看到它们的全部荣耀,如下所示:

Hierarchy after clicking Play manually

但是,如果我随后运行我的播放模式测试,似乎不会加载相同的场景,而是层次结构窗格显示“InitTestScene[LongStringOfNumbers]”,其中只有一个名为“基于代码的测试运行器”的对象",就像这样:

Hierarchy during play-mode test

这会在我的测试期间导致 NullReferenceExceptions,因为我正在尝试查找层次结构中不存在的名为“InputField (TMP)”的对象,因此我的测试失败了。

起初我想也许我必须加载这个场景作为测试设置的一部分,所以我尝试了SceneManager.LoadScene("MyScene", LoadSceneMode.Single);,但无济于事。

任何想法如何克服这个问题,以便我的播放模式测试使用代表我发布的第一个屏幕截图的层次结构,而不是缺少所有对象的第二个屏幕截图?

谢谢

【问题讨论】:

    标签: unity3d


    【解决方案1】:

    Unity 单元测试不测试场景,它测试代码的单元。测试运行程序每次启动时都会创建一个新场景并在该场景中运行测试。据我所知,您将不得不重新创建您正在测试的内容在测试中并对其进行测试。

    创建对象以添加到层次结构中也存在限制。 This link here 解释了如何在测试场景中创建对象

    【讨论】:

      猜你喜欢
      • 2018-08-13
      • 1970-01-01
      • 1970-01-01
      • 2012-12-30
      • 1970-01-01
      • 1970-01-01
      • 2018-07-30
      • 1970-01-01
      • 2021-06-10
      相关资源
      最近更新 更多