private void RebuildTree()
        {
            TreeRoot.Children.Clear();

            // init with root element
            if (_tableAuthoring != null && _tableAuthoring.Table != null)
            {
                // table node
                var tableItem = new LayerTreeElement(_tableAuthoring.Table)
                {
                    Id = 0
                };
                TreeRoot.AddChild(tableItem);

                var layerCount = 1;
                foreach (var pair in _layers.OrderBy(key => key.Key))
                {
                    // layer node
                    var layerItem = new LayerTreeElement(pair.Key)
                    {
                        Id = layerCount++
                    };
                    tableItem.AddChild(layerItem);

                    foreach (var item in pair.Value.OrderBy(behaviour => behaviour.name))
                    {
                        if (item is ILayerableItemAuthoring layeredItem)
                        {
                            layerItem.AddChild(new LayerTreeElement(layeredItem)
                            {
                                Id = item.gameObject.GetInstanceID()
                            });
                        }
                    }
                }
            }

            TreeRebuilt?.Invoke();
        }
Example #2
0
 public void SetData(IList <T> elements)
 {
     SetData(TreeElementUtility.ListToTree <T>(elements));
     TreeRebuilt?.Invoke(Root);
     Reload();
 }
Example #3
0
 public void SetData(T root)
 {
     SetData(root);
     TreeRebuilt?.Invoke(Root);
     Reload();
 }