static void Update()
        {
            EditorUpdaterProxy.Instance.onLateUpdate -= OnLateUpdate;
            EditorUpdaterProxy.Instance.onLateUpdate += OnLateUpdate;

            if (s_DraggingATool)
            {
                s_DraggingATool = false;

                string undoName = "Move";

                if (Tools.current == Tool.Rotate)
                {
                    undoName = "Rotate";
                }
                if (Tools.current == Tool.Scale)
                {
                    undoName = "Scale";
                }

                for (int i = 0; i < Selection.transforms.Length; i++)
                {
                    Transform transform = Selection.transforms [i];
                    Control   control   = transform.GetComponent <Control> ();
                    if (control && control.isActiveAndEnabled && control.bone)
                    {
                        Undo.RecordObject(control.bone.transform, undoName);

                        control.bone.transform.position = control.transform.position;
                        control.bone.transform.rotation = control.transform.rotation;

                        BoneUtils.OrientToChild(control.bone.parentBone, false, undoName, true);
                    }

                    Ik2D ik2D = transform.GetComponent <Ik2D>();
                    if (ik2D && ik2D.record)
                    {
                        IkUtils.UpdateIK(ik2D, undoName, true);
                    }
                }

                SetDirty();
            }

            AnimationModeCheck();
            AnimationWindowTimeCheck();

            IkUtils.UpdateAttachedIKs(s_Ik2Ds);

            UpdateIKs();
        }
Beispiel #2
0
        void CreatePreview()
        {
            DestroyPreview();

            if (!AnimationMode.InAnimationMode())
            {
                return;
            }

            if (m_SelectedRenderer)
            {
                List <Renderer> l_renderers = new List <Renderer>();

                AnimationWindowExtra.rootGameObject.GetComponentsInChildren <Renderer>(l_renderers);

                foreach (Renderer renderer in l_renderers)
                {
                    renderer.enabled = renderer == m_SelectedRenderer;
                }

                m_InstanceRoot = EditorExtra.InstantiateForAnimatorPreview(AnimationWindowExtra.rootGameObject) as GameObject;

                foreach (Renderer renderer in l_renderers)
                {
                    renderer.enabled = true;
                }
            }
            else
            {
                m_InstanceRoot = EditorExtra.InstantiateForAnimatorPreview(AnimationWindowExtra.rootGameObject) as GameObject;
            }

            EditorExtra.InitInstantiatedPreviewRecursive(m_InstanceRoot);

            List <Ik2D> ik2Ds = new List <Ik2D>();

            m_InstanceRoot.GetComponentsInChildren <Ik2D>(ik2Ds);

            IkUtils.UpdateAttachedIKs(ik2Ds);

            m_OnionLayerManager.source = m_InstanceRoot;

            m_InstanceRoot.SetActive(false);
        }
        void CreatePreview()
        {
            DestroyPreview();

            if (!AnimationMode.InAnimationMode())
            {
                return;
            }

            m_InstanceRoot = EditorExtra.InstantiateForAnimatorPreview(AnimationWindowExtra.rootGameObject) as GameObject;

            EditorExtra.InitInstantiatedPreviewRecursive(m_InstanceRoot);

            List <Ik2D> ik2Ds = new List <Ik2D>();

            m_InstanceRoot.GetComponentsInChildren <Ik2D>(ik2Ds);

            IkUtils.UpdateAttachedIKs(ik2Ds);

            m_OnionLayerManager.source = m_InstanceRoot;

            m_InstanceRoot.SetActive(false);
        }