Esempio n. 1
0
        public void RecordFreeControllerPosition(FreeControllerAnimationTarget target)
        {
            var time = animationEditContext.clipTime.Snap();

            if (animationEditContext.autoKeyframeAllControllers)
            {
                foreach (var t in animationEditContext.GetAllOrSelectedTargets().OfType <FreeControllerAnimationTarget>())
                {
                    animationEditContext.SetKeyframeToCurrentTransform(target, time);
                }
            }
            else
            {
                animationEditContext.SetKeyframeToCurrentTransform(target, time);
            }

            if (animationEditContext.current.autoTransitionPrevious && time == 0)
            {
                animationEditContext.Sample();
            }
            else if (animationEditContext.current.autoTransitionNext && time == animationEditContext.current.animationLength)
            {
                animationEditContext.Sample();
            }
        }
Esempio n. 2
0
        private void ChangeCurve(string val)
        {
            if (!_animationEditContext.CanEdit())
            {
                RefreshCurrentCurveType(_animationEditContext.clipTime);
                return;
            }

            if (string.IsNullOrEmpty(val) || val.StartsWith("("))
            {
                RefreshCurrentCurveType(_animationEditContext.clipTime);
                return;
            }
            var time = _animationEditContext.clipTime.Snap();

            var curveType = CurveTypeValues.ToInt(val);

            foreach (var target in _animationEditContext.GetAllOrSelectedTargets().OfType <ICurveAnimationTarget>())
            {
                target.ChangeCurve(time, curveType);
            }

            if (curveType == CurveTypeValues.CopyPrevious)
            {
                _animationEditContext.Sample();
            }

            RefreshCurrentCurveType(_animationEditContext.clipTime);
        }