0

我目前正在 Unity 中制作游戏,但遇到了问题。基本上我目前正在尝试做的是在我的 Recource 文件夹中加载未来场景所需的大量对象,并在加载包括启动场景在内的任何场景之前加载它们,这样我基本上可以随机选择加载场景依赖于第一个场景来加载我在后面的场景中需要的游戏对象。我在网上找到了一种应该能够做到这一点的方法。我创建了一个名为 main 的游戏对象,将其放入我的资源文件夹中,并将下面的脚本附加到它上面。然后我将在我的任何场景之前需要加载的所有游戏对象附加到这个游戏对象(“主”):

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

public class Main : MonoBehaviour
{
    //[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
    void Start()
    {

        GameObject main = Instantiate(Resources.Load("Main")) as GameObject;
        var mainObj = Instantiate(main);
        mainObj.SetActive(false);
        GameObject.DontDestroyOnLoad(main);
        MySceneManager.LoadScene(1, this);


    }

}

然后当我出于某种原因运行我的游戏时,我得到一个 NullReference 异常说明:(您要实例化的对象为空)。有谁知道我如何解决这个问题,或者即使他们是我试图解决的问题的更简单的解决方案?

提前致谢

4

1 回答 1

1

您可以创建一个空的“加载场景”。场景将纯粹用于实例化您需要的对象,并在完成后终止。就像游戏中的主菜单一样。您可以将脚本放在场景选择场景中。

于 2019-09-16T06:42:21.657 回答