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