/// <summary>
        /// Loads hierarchy state from the stored scene data.
        /// </summary>
        /// <param name="sceneData">Scene data to restore the hierarcy state from.</param>
        internal void LoadHierarchyState(EditorSceneData sceneData)
        {
            SceneTreeViewState state = treeView.State;
            Dictionary <UUID, EditorSceneObject> lookup = sceneData.GetLookup();

            SceneTreeViewElement[] elements = state.Elements;
            for (int i = 0; i < elements.Length; i++)
            {
                if (lookup.TryGetValue(elements[i].sceneObject.UUID, out EditorSceneObject editorSO))
                {
                    elements[i].isExpanded = editorSO.IsExpanded;
                }
            }

            state.Elements = elements;
            treeView.State = state;
        }
        /// <summary>
        /// Updates the scene data with data from the hierarchy view.
        /// </summary>
        /// <param name="sceneData">Scene data to append hierarchy state to.</param>
        internal void SaveHierarchyState(EditorSceneData sceneData)
        {
            if (treeView == null)
            {
                return;
            }

            SceneTreeViewState state = treeView.State;
            Dictionary <UUID, EditorSceneObject> lookup = sceneData.GetLookup();

            foreach (var entry in state.Elements)
            {
                if (lookup.TryGetValue(entry.sceneObject.UUID, out EditorSceneObject editorSO))
                {
                    editorSO.IsExpanded = entry.isExpanded;
                }
            }
        }
Beispiel #3
0
 private static extern void Internal_SetState(IntPtr thisPtr, SceneTreeViewState state);