コード例 #1
0
    private IEnumerator Start()
    {
        ChildrenFromScene childrenFromScene = this;
        Scene             sceneByName       = SceneManager.GetSceneByName(childrenFromScene.SceneName);

        if (!((Scene) ref sceneByName).get_isLoaded())
        {
            yield return((object)SceneManager.LoadSceneAsync(childrenFromScene.SceneName, (LoadSceneMode)1));
        }
        sceneByName = SceneManager.GetSceneByName(childrenFromScene.SceneName);
        foreach (GameObject rootGameObject in ((Scene) ref sceneByName).GetRootGameObjects())
        {
            rootGameObject.get_transform().SetParent(((Component)childrenFromScene).get_transform(), false);
            rootGameObject.Identity();
            RectTransform transform = rootGameObject.get_transform() as RectTransform;
            if (Object.op_Implicit((Object)transform))
            {
                transform.set_pivot(Vector2.get_zero());
                transform.set_anchoredPosition(Vector2.get_zero());
                transform.set_anchorMin(Vector2.get_zero());
                transform.set_anchorMax(Vector2.get_one());
                transform.set_sizeDelta(Vector2.get_one());
            }
            foreach (SingletonComponent componentsInChild in (SingletonComponent[])rootGameObject.GetComponentsInChildren <SingletonComponent>(true))
            {
                componentsInChild.Setup();
            }
            if (childrenFromScene.StartChildrenDisabled)
            {
                rootGameObject.SetActive(false);
            }
        }
        SceneManager.UnloadSceneAsync(sceneByName);
    }
コード例 #2
0
    private IEnumerator Start()
    {
        ChildrenFromScene childrenFromScene = null;

        UnityEngine.Debug.LogWarning(string.Concat("WARNING: CHILDRENFROMSCENE(", childrenFromScene.SceneName, ") - WE SHOULDN'T BE USING THIS SHITTY COMPONENT NOW WE HAVE AWESOME PREFABS"), childrenFromScene.gameObject);
        Scene sceneByName = SceneManager.GetSceneByName(childrenFromScene.SceneName);

        if (!sceneByName.isLoaded)
        {
            yield return(SceneManager.LoadSceneAsync(childrenFromScene.SceneName, LoadSceneMode.Additive));
        }
        sceneByName = SceneManager.GetSceneByName(childrenFromScene.SceneName);
        GameObject[] rootGameObjects = sceneByName.GetRootGameObjects();
        for (int i = 0; i < (int)rootGameObjects.Length; i++)
        {
            GameObject gameObject = rootGameObjects[i];
            gameObject.transform.SetParent(childrenFromScene.transform, false);
            gameObject.Identity();
            RectTransform rectTransform = gameObject.transform as RectTransform;
            if (rectTransform)
            {
                rectTransform.pivot            = Vector2.zero;
                rectTransform.anchoredPosition = Vector2.zero;
                rectTransform.anchorMin        = Vector2.zero;
                rectTransform.anchorMax        = Vector2.one;
                rectTransform.sizeDelta        = Vector2.one;
            }
            SingletonComponent[] componentsInChildren = gameObject.GetComponentsInChildren <SingletonComponent>(true);
            for (int j = 0; j < (int)componentsInChildren.Length; j++)
            {
                componentsInChildren[j].SingletonSetup();
            }
            if (childrenFromScene.StartChildrenDisabled)
            {
                gameObject.SetActive(false);
            }
        }
        SceneManager.UnloadSceneAsync(sceneByName);
    }