private void Awake()
    {
        if (instance == null)
        {
            instance = this;
        }
        else if (instance != this)
        {
            Destroy(gameObject);
            return;
        }

        holder.SetActive(true);
        AddListener(() =>
        {
            holder.SetActive(false);
        });

        if (FindObjectOfType <SceneryController>())
        {
            int ID = loadingReady.Count;
            loadingReady.Add(false);
            SceneryController.AddListener(() =>
            {
                Ready(ID);
            });
        }

        if (FindObjectOfType <EntityGenerator>())
        {
            int ID = loadingReady.Count;
            loadingReady.Add(false);
            EntityGenerator.AddListener(() =>
            {
                Ready(ID);
            });
        }

        if (FindObjectOfType <EntityNetwork>())
        {
            int ID = loadingReady.Count;
            loadingReady.Add(false);
            EntityNetwork.AddListener(() =>
            {
                Ready(ID);
            });
        }
    }