У меня странная проблема с некоторым моим кодом, и я действительно мог бы использовать некоторую помощь.
У меня есть скрипт, прикрепленный к игровому объекту, который уникален для конкретной сцены, поэтому все, что находится в Start () будет работать только при загрузке этой сцены.В этом сценарии я обращаюсь к Camera.main, так как я использую настройки, прикрепленные к игровому объекту камеры (это может звучать неэффективно, но это необходимо для стиля игры, который мы создаем).В любом случае, если я начинаю с этой сцены непосредственно в Unity, она работает просто отлично, но если я начинаю со своей вступительной сцены, а затем загружаюсь в вышеупомянутую сцену, я получаю эту ошибку:
MissingReferenceException: The object of type 'Camera' has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
Странная вещьесть, я могу Debug.Log (Camera.main), и он дает мне имя камеры.Таким образом, Camera.main не имеет значение null и не уничтожается, как указано в сообщении об ошибке.Вот мой полный сценарий:
private void Start()
{
Debug.LogError(Camera.main);
gameManager = FindObjectOfType<GameManagerScript>();
if (Camera.main == null)
{
Debug.LogError("Camera.main is null");
}
else
{
gameManager.LoadMusic(Camera.main);
gameManager.LoadAmbient(Camera.main);
gameManager.FadeStereoPan(Camera.main.gameObject.GetComponent<SwipeActivator>().stereoPanInNode);
}
}
Три вышеупомянутые функции - это пользовательские функции, которые я написал, но я не знаю, почему они будут вызывать проблему, так как они работают, если я запускаю сцену напрямую.
У меня не было этой проблемы в течение нескольких месяцев, а затем внезапно я получаю эту ошибку, хотя я не изменил ни один код.Любая помощь будет принята с благодарностью.