コード例 #1
0
        internal void RemovePropertiesByIds(IEnumerable <int> ids, bool removeCompleteGroup = true)
        {
            List <EditorCurveBinding> bindingsToRemove = new List <EditorCurveBinding>();

            foreach (int selectedId in ids)
            {
                BindingTreeViewDataSource bindingTree = m_BindingHierarchy.treeViewController.data as BindingTreeViewDataSource;
                CurveTreeViewNode         node        = bindingTree.FindItem(selectedId) as CurveTreeViewNode;
                if (node == null)
                {
                    continue;
                }
                foreach (EditorCurveBinding editorCurveBinding in node.bindings)
                {
                    if (bindingsToRemove.Contains(editorCurveBinding))
                    {
                        continue;
                    }
                    CurveTreeViewNode currentNode = node;
                    do
                    {
                        //check if property is part of a group
                        bool isRoot  = currentNode.depth == 0;
                        bool isGroup = currentNode.displayName == BindingTreeViewDataSource.GroupName(editorCurveBinding);
                        if (!isRoot && !isGroup && removeCompleteGroup)
                        {
                            currentNode = currentNode.parent as CurveTreeViewNode;
                        }
                        else
                        {
                            if (!AnimationWindowUtility.ForceGrouping(editorCurveBinding))
                            {
                                bindingsToRemove.Add(editorCurveBinding);
                            }
                            else //Group to remove
                            {
                                bindingsToRemove.AddRange(currentNode.bindings);
                            }
                            break;
                        }
                    }while (currentNode != null);
                }
            }

            RemoveProperty(bindingsToRemove);
            m_BindingHierarchy.RefreshTree();
            TimelineWindow.instance.state.CalculateRowRects();
        }
コード例 #2
0
 public void RefreshCurves()
 {
     if (this.m_ClipDataSource != null && this.m_Selection != null)
     {
         List <EditorCurveBinding> list = new List <EditorCurveBinding>();
         int[] selection = this.m_Selection;
         for (int i = 0; i < selection.Length; i++)
         {
             int num = selection[i];
             CurveTreeViewNode curveTreeViewNode = (CurveTreeViewNode)this.m_TreeView.FindItem(num);
             if (curveTreeViewNode != null && curveTreeViewNode.bindings != null)
             {
                 list.AddRange(curveTreeViewNode.bindings);
             }
         }
         AnimationClip       animationClip = this.m_ClipDataSource.animationClip;
         List <CurveWrapper> list2         = new List <CurveWrapper>();
         int num2 = 0;
         foreach (EditorCurveBinding current in list)
         {
             CurveWrapper curveWrapper = new CurveWrapper();
             curveWrapper.id       = num2++;
             curveWrapper.binding  = current;
             curveWrapper.groupId  = -1;
             curveWrapper.color    = CurveUtility.GetPropertyColor(current.propertyName);
             curveWrapper.hidden   = false;
             curveWrapper.readOnly = false;
             curveWrapper.set_renderer(new NormalCurveRenderer(AnimationUtility.GetEditorCurve(animationClip, current)));
             curveWrapper.getAxisUiScalarsCallback = new CurveWrapper.GetAxisScalarsCallback(this.GetAxisScalars);
             CurveWrapper curveWrapper2 = curveWrapper;
             curveWrapper2.get_renderer().SetCustomRange(0f, animationClip.get_length());
             list2.Add(curveWrapper2);
         }
         this.m_CurveEditor.set_animationCurves(list2.ToArray());
     }
 }