using RuntimeGizmos; using UnityEngine; public class HandleTransformCommand : TransformCommand { protected UIHandle _handle; protected int _frame; public HandleTransformCommand(TransformGizmo transformGizmo, Transform transform) : base(transformGizmo, transform.GetComponent().Target) { _frame = TimelineController.Instance.CurrentFrame; _handle = transform.GetComponent(); } public HandleTransformCommand(TransformGizmo transformGizmo, HandleUndoData data) : base(transformGizmo, data.NewPosition) { _frame = TimelineController.Instance.CurrentFrame; _handle = data.Handle; oldValues = new TransformValues() { position = data.OldPosition.Position, rotation = Quaternion.Euler(data.OldPosition.Rotation), scale = data.OldPosition.Scale }; newValues = new TransformValues() { position = transform.position, rotation = transform.rotation, scale = transform.localScale }; } public override void Execute() { TimelineController.SetCurrentFrame(_frame); base.Execute(); _handle.Owner.SetKeyframe(); } public override void UnExecute() { TimelineController.SetCurrentFrame(_frame); base.UnExecute(); _handle.Owner.SetKeyframe(); } }