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); }
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); }