void CreateSceneHeaderItems() { m_StickySceneHeaderItems.Clear(); int numScenesInHierarchy = EditorSceneManager.sceneCount; if (SubSceneGUI.IsUsingSubScenes()) { for (int i = 0; i < numScenesInHierarchy; ++i) { Scene scene = SceneManager.GetSceneAt(i); var subSceneInfo = SubSceneGUI.GetSubSceneInfo(scene); if (subSceneInfo.isValid) { var item = new GameObjectTreeViewItem(0, 0, null, null); var transform = subSceneInfo.transform; GameObject gameObject = transform.gameObject; int depth = SubSceneGUI.CalculateHierarchyDepthOfSubScene(subSceneInfo); InitTreeViewItem(item, gameObject.GetInstanceID(), subSceneInfo.scene, false, 0, gameObject, false, depth); m_StickySceneHeaderItems.Add(item); } else { var item = new GameObjectTreeViewItem(0, 0, null, null); InitTreeViewItem(item, scene.handle, scene, true, 0, null, false, 0); m_StickySceneHeaderItems.Add(item); } } } else { for (int i = 0; i < numScenesInHierarchy; ++i) { Scene scene = SceneManager.GetSceneAt(i); var item = new GameObjectTreeViewItem(0, 0, null, null); InitTreeViewItem(item, scene.handle, scene, true, 0, null, false, 0); m_StickySceneHeaderItems.Add(item); } } }