Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        //�}�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;
        }