private TreeViewItem AddAnimatableObjectToHierarchy(EditorCurveBinding[] curveBindings, TreeViewItem parentNode, string path)
        {
            TreeViewItem treeViewItem = new AddCurvesPopupObjectNode(parentNode, path, AddCurvesPopupHierarchyDataSource.GetClassName(curveBindings[0]));

            treeViewItem.icon = AddCurvesPopupHierarchyDataSource.GetIcon(curveBindings[0]);
            List <TreeViewItem>       list  = new List <TreeViewItem>();
            List <EditorCurveBinding> list2 = new List <EditorCurveBinding>();

            for (int i = 0; i < curveBindings.Length; i++)
            {
                EditorCurveBinding item = curveBindings[i];
                list2.Add(item);
                if (i == curveBindings.Length - 1 || AnimationWindowUtility.GetPropertyGroupName(curveBindings[i + 1].propertyName) != AnimationWindowUtility.GetPropertyGroupName(item.propertyName))
                {
                    TreeViewItem treeViewItem2 = this.CreateNode(list2.ToArray(), treeViewItem);
                    if (treeViewItem2 != null)
                    {
                        list.Add(treeViewItem2);
                    }
                    list2.Clear();
                }
            }
            list.Sort();
            TreeViewUtility.SetChildParentReferences(list, treeViewItem);
            return(treeViewItem);
        }
Example #2
0
        private TreeViewItem AddAnimatableObjectToHierarchy(GameObject root, EditorCurveBinding[] curveBindings, TreeViewItem parentNode, string path)
        {
            TreeViewItem treeViewItem = (TreeViewItem) new AddCurvesPopupObjectNode(parentNode, path, AddCurvesPopupHierarchyDataSource.GetClassName(root, curveBindings[0]));

            treeViewItem.icon = AssetPreview.GetMiniThumbnail(AnimationUtility.GetAnimatedObject(root, curveBindings[0]));
            List <TreeViewItem>       visibleItems           = new List <TreeViewItem>();
            List <EditorCurveBinding> editorCurveBindingList = new List <EditorCurveBinding>();

            for (int index = 0; index < curveBindings.Length; ++index)
            {
                EditorCurveBinding curveBinding = curveBindings[index];
                editorCurveBindingList.Add(curveBinding);
                if (index == curveBindings.Length - 1 || AnimationWindowUtility.GetPropertyGroupName(curveBindings[index + 1].propertyName) != AnimationWindowUtility.GetPropertyGroupName(curveBinding.propertyName))
                {
                    TreeViewItem node = this.CreateNode(editorCurveBindingList.ToArray(), treeViewItem);
                    if (node != null)
                    {
                        visibleItems.Add(node);
                    }
                    editorCurveBindingList.Clear();
                }
            }
            visibleItems.Sort();
            TreeViewUtility.SetChildParentReferences(visibleItems, treeViewItem);
            return(treeViewItem);
        }