internal static void FetchSubSceneInfo()
    {
        if (SceneHierarchyHooks.provideSubScenes != null)
        {
            m_SubSceneHeadersMap      = new Dictionary <GameObject, SceneHierarchyHooks.SubSceneInfo>();
            m_SceneToSubSceneMap      = new Dictionary <Scene, SceneHierarchyHooks.SubSceneInfo>();
            m_SceneAssetToSubSceneMap = new Dictionary <SceneAsset, SceneHierarchyHooks.SubSceneInfo>();

            var subSceneInfos = SceneHierarchyHooks.provideSubScenes();
            foreach (var subSceneInfo in subSceneInfos)
            {
                if (subSceneInfo.transform == null)
                {
                    Debug.LogError("Invalid Transform");
                    continue;
                }

                m_SubSceneHeadersMap[subSceneInfo.transform.gameObject] = subSceneInfo;

                if (subSceneInfo.scene.IsValid())
                {
                    m_SceneToSubSceneMap[subSceneInfo.scene] = subSceneInfo;
                }
                if (subSceneInfo.sceneAsset)
                {
                    m_SceneAssetToSubSceneMap[subSceneInfo.sceneAsset] = subSceneInfo;
                }
            }
        }
    }
Beispiel #2
0
        internal HierarchyProperty CreateHierarchyProperty()
        {
            HierarchyProperty property = new HierarchyProperty(k_HierarchyType);

            property.alphaSorted      = IsUsingAlphaSort();
            property.showSceneHeaders = PrefabStageUtility.GetCurrentPrefabStage() == null;
            if (SceneHierarchyHooks.provideSubScenes != null)
            {
                property.SetSubScenes(SceneHierarchyHooks.provideSubScenes());
            }

            if (AreScenesValid(scenes))
            {
                property.SetCustomScenes(scenes);
            }
            return(property);
        }