簡體   English   中英

如何制作在加載任何場景之前運行的方法?

[英]How can I make a method that runs before any scene is loaded?

我目前正在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);


    }

}

然后,當我出於某種原因運行游戲時,我得到一個NullReferenceexception聲明:(要實例化的對象為null)。 有誰知道我可以解決這個問題,或者即使他們是我要解決的問題的更簡單解決方案,也可以嗎?

提前致謝

您可以創建一個空的“加載場景”。 該場景將純粹用於實例化所需的對象,並在完成后終止。 就像游戲中的主菜單一樣。 您可以將腳本放入場景選擇場景中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM