Почему я получаю только иногда: MissingReferenceException: объект типа 'ReflectionProbe' был уничтожен? - PullRequest
0 голосов
/ 26 сентября 2019

У меня в Иерархии есть несколько зондов отражений:

На скриншоте слева группа зондов некоторых отражений и настройки инспектора.а справа еще один в нижней части моей Иерархии с его настройками инспектора.

Reflection Probes

И у меня есть пустой игровой объект с этим сценарием:сцена игрового процесса находится в индексе 1, главное меню - в индексе 0.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class BackToMainMenu : MonoBehaviour
{
    public PlayerCameraMouseLook cammouselook;

    // Update is called once per frame
    void Update ()
    {
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex - 1);
            PlayerCameraMouseLook.mouseLookEnable = false;
            cammouselook.enabled = true;
        }
    }
}

При нажатии на escape во время игры основная сцена игрового процесса удаляется / выгружается и загружается сцена главного меню.

Я пытался, как 20 раз, запустить игру и нажать escape, и все было в порядке.Но в 21 раз тест почему-то выкидывает исключение в редактор.В большинстве случаев это не показывает исключение, но иногда это так:

Я не смог найти в своей Иерархии ни одного объекта со скриптом, который использует или пытается получить доступ к муравью зондов отражения.

А также сообщение об исключении не указывает на один из моих сценариев, который пытается получить к нему доступ, поэтому я вообще не знаю, какой сценарий пытается получить доступ к любому из зондов отражения.

MissingReferenceException: объект типа 'ReflectionProbe' был уничтожен, но вы все еще пытаетесь получить к нему доступ.Ваш скрипт должен либо проверять, является ли он нулевым, либо вы не должны уничтожать объект.UnityEditor.ReflectionProbeEditor.OnPreSceneGUICallback (UnityEditor.build / Editor / Mono / SceneView / SceneView.cs: 3359) UnityEditor.SceneView.DoOnPreSceneGUICallbacks (UnityEngine.Rect cameraRect) (по адресу C: /buildslave/unity/build/Editor/Mono/SceneView/SceneitorE.SceneView.OnGUI () (в C: /buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs: 2320) System.Reflection.MonoMethod.Invoke (объект System.Object, объект System.Reflection.BindingFlags invokeAttr, система.Связыватель Reflection.Binder, параметры System.Object [], культура System.Globalization.CultureInfo) (при <599589bf4ce248909b8a14cbe4a2034e>: 0) Rethrow as TargetInvocationException: Исключение было выдано целью вызова.UnityEngine.UIElements.UIR.RenderChain.Render (проекция UnityEngine.Rect topRect, UnityEngine.Matrix4x4) (в C: /buildslave/unity/build/Modules/UIElements/Renderer/UIRChainBuilder.cs: 23R).(UnityEngine.Rect topRect, проекция UnityEngine.Matrix4x4) (на C: /buildslave/unity/build/Modules/UIElements/Renderer/UIRRepaintUpdater.cs: 66) UnityEngine.UIElements.UIRRepaintUpdater.Upves (/): build ():unity / build / Модули / UIElements / Renderer / UIRRepaintUpdater.cs: 54) UnityEngine.UIElements.VisualTreeUpdater.UpdateVisualTree () (в C: /buildslave/unity/build/Modules/UIElements/VisualTreeUpity) Unity. Unity.Panel.Repaint (UnityEngine.Event e) (на C: /buildslave/unity/build/Modules/UIElements/Panel.cs: 637) UnityEngine.UIElements.UIElementsUtility.DoDispatch (панель UnityEngine.UIElements.BaseVisualElementPanel в ()buildslave / unity / build / Modules / UIElements / UIElementsUtility.cs: 240) UnityEngine.UIElements.UIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (в C: /buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs: 78) UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPr) (System.IntPr)в C: /buildslave/unity/build/Modules/IMGUI/GUIUtility.cs: 179)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...