private void ExitUpdate(Vector2 currentDistance) { var distanceToFrame = DistanceToFrame(currentDistance.x); Emit(new OnAutomatineEvent(OnAutomatineEvent.EventType.EVENT_TACK_MOVED, tackId)); switch (mode) { case TackModifyMode.DRAG_START: { start = start + distanceToFrame; span = span - distanceToFrame; break; } case TackModifyMode.DRAG_BODY: { start = start + distanceToFrame; break; } case TackModifyMode.DRAG_END: { span = span + distanceToFrame; break; } } if (start < 0) { start = 0; } Emit(new OnAutomatineEvent(OnAutomatineEvent.EventType.EVENT_TACK_MOVED_AFTER, tackId)); mode = TackModifyMode.NONE; distance = Vector2.zero; }
//�}�E�X�����ꂽ�Ƃ� void ExitUpdate(Vector2 currentDistance) { var distanceToFrame = DistanceToFrame(currentDistance.x); Emit(new OnTrackEvent(OnTrackEvent.EventType.EVENT_TACK_MOVED, tackId_)); //lastStart_ = start_; //lastSpan_ = span_; var newStart = start_; var newSpan = span_; var lastStart = start_; var lastSpan = span_; //�ړ����� switch (mode_) { case TackModifyMode.DRAG_BODY: //�S�̂�ړ� { newStart = start_ + distanceToFrame; //Debug.Log("DRAG_BODY"+ newStart.ToString()+ newSpan.ToString()); break; } case TackModifyMode.DRAG_END: //������L�� { newSpan = span_ + distanceToFrame; //Debug.Log("DRAG_END"); break; } } if (newStart < 0) { newStart = 0; } //Debug.Log("start" + newStart.ToString() + "span"+newSpan.ToString()); string id = MethodBase.GetCurrentMethod().Name; Action action = () => { start_ = newStart; span_ = newSpan; lastStart_ = lastStart; lastSpan_ = lastSpan; }; Action undo = () => { start_ = lastStart; span_ = lastSpan; lastStart_ = lastStart; lastSpan_ = lastSpan; }; ARIMotionMainWindow.scoreCmd_.Do(new MotionCommand(id, action, undo)); Emit(new OnTrackEvent(OnTrackEvent.EventType.EVENT_TACK_MOVED_AFTER, tackId_)); mode_ = TackModifyMode.NONE; distance_ = Vector2.zero; }