コード例 #1
0
        internal static bool ShowAtPosition(Rect buttonRect, AnimatorControllerLayer layer, int layerIndex, AnimatorController controller)
        {
            long num = DateTime.Now.Ticks / 0x2710L;

            if (num >= (s_LastClosedTime + 50L))
            {
                Event.current.Use();
                if (s_LayerSettingsWindow == null)
                {
                    s_LayerSettingsWindow = ScriptableObject.CreateInstance <LayerSettingsWindow>();
                }
                s_LayerSettingsWindow.m_Layer      = layer;
                s_LayerSettingsWindow.m_LayerIndex = layerIndex;
                s_LayerSettingsWindow.m_Controller = controller;
                s_LayerSettingsWindow.Init(buttonRect);
                return(true);
            }
            return(false);
        }
コード例 #2
0
 private void OnDisable()
 {
     s_LayerSettingsWindow  = null;
     s_LastClosedTime       = DateTime.Now.Ticks / 0x2710L;
     Undo.undoRedoPerformed = (Undo.UndoRedoCallback)Delegate.Remove(Undo.undoRedoPerformed, new Undo.UndoRedoCallback(this.UndoRedoPerformed));
 }
コード例 #3
0
        private void OnDrawLayer(Rect rect, int index, bool selected, bool focused)
        {
            Event current = Event.current;

            if (current.type == EventType.MouseUp && current.button == 1 && rect.Contains(current.mousePosition))
            {
                GenericMenu genericMenu = new GenericMenu();
                genericMenu.AddItem(new GUIContent("Delete"), false, new GenericMenu.MenuFunction(this.DeleteLayer));
                genericMenu.ShowAsContext();
                Event.current.Use();
            }
            UnityEditor.Animations.AnimatorControllerLayer animatorControllerLayer = this.m_LayerList.list[index] as UnityEditor.Animations.AnimatorControllerLayer;
            rect.yMin += 4f;
            rect.yMax -= 4f;
            Vector2 vector = LayerControllerView.s_Styles.invisibleButton.CalcSize(LayerControllerView.s_Styles.settingsIcon);
            Rect    rect2  = new Rect(rect.xMax - vector.x - 4f, rect.yMin + 1f, vector.x, rect.height - 16f);
            Rect    rect3  = rect2;

            if (GUI.Button(rect3, LayerControllerView.s_Styles.settingsIcon, LayerControllerView.s_Styles.invisibleButton))
            {
                Rect buttonRect = rect3;
                buttonRect.x += 15f;
                if (LayerSettingsWindow.ShowAtPosition(buttonRect, animatorControllerLayer, index, this.m_Host.animatorController))
                {
                    GUIUtility.ExitGUI();
                }
            }
            if (animatorControllerLayer.syncedLayerIndex != -1)
            {
                Vector2 vector2 = LayerControllerView.s_Styles.layerLabel.CalcSize((!animatorControllerLayer.syncedLayerAffectsTiming) ? LayerControllerView.s_Styles.sync : LayerControllerView.s_Styles.syncTime);
                rect3 = new Rect(rect3.xMin - vector2.x - 4f, rect.yMin, vector2.x, rect.height - 16f);
                GUI.Label(rect3, (!animatorControllerLayer.syncedLayerAffectsTiming) ? LayerControllerView.s_Styles.sync : LayerControllerView.s_Styles.syncTime, LayerControllerView.s_Styles.layerLabel);
            }
            if (animatorControllerLayer.iKPass)
            {
                Vector2 vector3 = LayerControllerView.s_Styles.layerLabel.CalcSize(LayerControllerView.s_Styles.ik);
                rect3 = new Rect(rect3.xMin - vector3.x - 4f, rect.yMin, vector3.x, rect.height - 16f);
                GUI.Label(rect3, LayerControllerView.s_Styles.ik, LayerControllerView.s_Styles.layerLabel);
            }
            if (animatorControllerLayer.blendingMode == UnityEditor.Animations.AnimatorLayerBlendingMode.Additive)
            {
                Vector2 vector4 = LayerControllerView.s_Styles.layerLabel.CalcSize(LayerControllerView.s_Styles.additive);
                rect3 = new Rect(rect3.xMin - vector4.x - 4f, rect.yMin, vector4.x, rect.height - 16f);
                GUI.Label(rect3, LayerControllerView.s_Styles.additive, LayerControllerView.s_Styles.layerLabel);
            }
            if (animatorControllerLayer.avatarMask != null)
            {
                Vector2 vector5 = LayerControllerView.s_Styles.layerLabel.CalcSize(LayerControllerView.s_Styles.mask);
                rect3 = new Rect(rect3.xMin - vector5.x - 4f, rect.yMin, vector5.x, rect.height - 16f);
                GUI.Label(rect3, LayerControllerView.s_Styles.mask, LayerControllerView.s_Styles.layerLabel);
            }
            Rect  rect4 = Rect.MinMaxRect(rect.xMin, rect.yMin, rect3.xMin - 4f, rect.yMax - 16f);
            float num   = (float)LayerControllerView.s_Styles.label.padding.left;
            Rect  rect5 = Rect.MinMaxRect(rect.xMin + num, rect.yMax - 11f, rect2.xMax, rect.yMax - 9f);
            bool  flag  = this.renameOverlay.IsRenaming() && this.renameOverlay.userData == index && !this.renameOverlay.isWaitingForDelay;

            if (flag)
            {
                if (rect4.width >= 0f && rect4.height >= 0f)
                {
                    rect4.x -= 2f;
                    this.renameOverlay.editFieldRect = rect4;
                }
                if (!this.renameOverlay.OnGUI())
                {
                    this.RenameEnd();
                }
            }
            else
            {
                GUI.Label(rect4, animatorControllerLayer.name, LayerControllerView.s_Styles.label);
            }
            if (Event.current.type == EventType.Repaint)
            {
                float num2  = (index != 0) ? ((!this.m_Host.liveLink) ? animatorControllerLayer.defaultWeight : this.m_Host.previewAnimator.GetLayerWeight(index)) : 1f;
                Rect  rect6 = rect5;
                rect6.width *= num2;
                EditorGUI.DrawRect(rect5, LayerControllerView.s_Styles.progressBackground);
                EditorGUI.DrawRect(rect6, (!this.m_Host.liveLink) ? LayerControllerView.s_Styles.progressEdit : LayerControllerView.s_Styles.progressLiveLink);
            }
        }
コード例 #4
0
 private void OnDisable()
 {
     s_LayerSettingsWindow = null;
     s_LastClosedTime = DateTime.Now.Ticks / 0x2710L;
     Undo.undoRedoPerformed = (Undo.UndoRedoCallback) Delegate.Remove(Undo.undoRedoPerformed, new Undo.UndoRedoCallback(this.UndoRedoPerformed));
 }
コード例 #5
0
 internal static bool ShowAtPosition(Rect buttonRect, AnimatorControllerLayer layer, int layerIndex, AnimatorController controller)
 {
     long num = DateTime.Now.Ticks / 0x2710L;
     if (num >= (s_LastClosedTime + 50L))
     {
         Event.current.Use();
         if (s_LayerSettingsWindow == null)
         {
             s_LayerSettingsWindow = ScriptableObject.CreateInstance<LayerSettingsWindow>();
         }
         s_LayerSettingsWindow.m_Layer = layer;
         s_LayerSettingsWindow.m_LayerIndex = layerIndex;
         s_LayerSettingsWindow.m_Controller = controller;
         s_LayerSettingsWindow.Init(buttonRect);
         return true;
     }
     return false;
 }
コード例 #6
0
        private void OnDrawLayer(Rect rect, int index, bool selected, bool focused)
        {
            Event current = Event.current;

            if (((current.type == EventType.MouseUp) && (current.button == 1)) && rect.Contains(current.mousePosition))
            {
                GenericMenu menu = new GenericMenu();
                menu.AddItem(new GUIContent("Delete"), false, new GenericMenu.MenuFunction(this.DeleteLayer));
                menu.ShowAsContext();
                Event.current.Use();
            }
            UnityEditor.Animations.AnimatorControllerLayer layer = this.m_LayerList.list[index] as UnityEditor.Animations.AnimatorControllerLayer;
            rect.yMin += 4f;
            rect.yMax -= 4f;
            Vector2 vector   = s_Styles.invisibleButton.CalcSize(s_Styles.settingsIcon);
            Rect    rect2    = new Rect((rect.xMax - vector.x) - 4f, rect.yMin + 1f, vector.x, rect.height - 16f);
            Rect    position = rect2;

            if (GUI.Button(position, s_Styles.settingsIcon, s_Styles.invisibleButton))
            {
                Rect buttonRect = position;
                buttonRect.x += 15f;
                if (LayerSettingsWindow.ShowAtPosition(buttonRect, layer, index, this.m_Host.animatorController))
                {
                    GUIUtility.ExitGUI();
                }
            }
            if (layer.syncedLayerIndex != -1)
            {
                Vector2 vector2 = s_Styles.layerLabel.CalcSize(!layer.syncedLayerAffectsTiming ? s_Styles.sync : s_Styles.syncTime);
                position = new Rect((position.xMin - vector2.x) - 4f, rect.yMin, vector2.x, rect.height - 16f);
                GUI.Label(position, !layer.syncedLayerAffectsTiming ? s_Styles.sync : s_Styles.syncTime, s_Styles.layerLabel);
            }
            if (layer.iKPass)
            {
                Vector2 vector3 = s_Styles.layerLabel.CalcSize(s_Styles.ik);
                position = new Rect((position.xMin - vector3.x) - 4f, rect.yMin, vector3.x, rect.height - 16f);
                GUI.Label(position, s_Styles.ik, s_Styles.layerLabel);
            }
            if (layer.blendingMode == UnityEditor.Animations.AnimatorLayerBlendingMode.Additive)
            {
                Vector2 vector4 = s_Styles.layerLabel.CalcSize(s_Styles.additive);
                position = new Rect((position.xMin - vector4.x) - 4f, rect.yMin, vector4.x, rect.height - 16f);
                GUI.Label(position, s_Styles.additive, s_Styles.layerLabel);
            }
            if (layer.avatarMask != null)
            {
                Vector2 vector5 = s_Styles.layerLabel.CalcSize(s_Styles.mask);
                position = new Rect((position.xMin - vector5.x) - 4f, rect.yMin, vector5.x, rect.height - 16f);
                GUI.Label(position, s_Styles.mask, s_Styles.layerLabel);
                if ((index == 0) && this.IsLayerUsingHumanoid(layer))
                {
                    Vector2 vector6 = s_Styles.invisibleButton.CalcSize(s_Styles.maskWarningIcon);
                    float   num     = (position.height - vector6.y) * 0.5f;
                    position = new Rect((position.xMin - vector6.x) - 4f, rect.yMin + num, vector6.x, vector6.y);
                    GUI.Label(position, s_Styles.maskWarningIcon, s_Styles.invisibleButton);
                }
            }
            Rect  rect5 = Rect.MinMaxRect(rect.xMin, rect.yMin, position.xMin - 4f, rect.yMax - 16f);
            float left  = s_Styles.label.padding.left;
            Rect  rect6 = Rect.MinMaxRect(rect.xMin + left, rect.yMax - 11f, rect2.xMax, rect.yMax - 9f);

            if ((this.renameOverlay.IsRenaming() && (this.renameOverlay.userData == index)) && !this.renameOverlay.isWaitingForDelay)
            {
                if ((rect5.width >= 0f) && (rect5.height >= 0f))
                {
                    rect5.x -= 2f;
                    this.renameOverlay.editFieldRect = rect5;
                }
                if (!this.renameOverlay.OnGUI())
                {
                    this.RenameEnd();
                }
            }
            else
            {
                GUI.Label(rect5, layer.name, s_Styles.label);
            }
            if (Event.current.type == EventType.Repaint)
            {
                float num3  = (index != 0) ? (!this.m_Host.liveLink ? layer.defaultWeight : this.m_Host.previewAnimator.GetLayerWeight(index)) : 1f;
                Rect  rect7 = rect6;
                rect7.width *= num3;
                EditorGUI.DrawRect(rect6, s_Styles.progressBackground);
                EditorGUI.DrawRect(rect7, !this.m_Host.liveLink ? s_Styles.progressEdit : s_Styles.progressLiveLink);
            }
        }