Esempio n. 1
0
    public void SetMovement(float distanceAdded, bool flag)
    {
        if (!_bouncingMovement.IsMovementEnded())
        {
            return;
        }

        var state           = _getPositionState();
        var movingDirection = Mathf.Sign(distanceAdded);

        if ((state == PositionState.Top && movingDirection < 0) ||
            (state == PositionState.Bottom && movingDirection > 0))
        {
            _bouncingMovement.SetMovement(movingDirection * _bouncingDeltaPos);
        }
        else
        {
            distanceAdded += _unitMovement.distanceRemaining;
            _unitMovement.SetMovement(distanceAdded);
        }
    }
Esempio n. 2
0
    /* 새 이동의 기본 값 설정
     *
     * 값 'isDragging'이 참이면 이 값은 드래그 거리임. 그렇지 않은 경우 이 값은 해제 이동의 기본 속도.
     *      is Dragging 목록이 드래그되고 있는지
     */
    public void SetMovement(float value, bool isDragging)
    {
        if (isDragging)
        {
            _isDragging       = true;
            _draggingDistance = value;

            // dragging을 시작할 때 마지막 이동 종료
            if (!_releasingMovement.IsMovementEnded())
            {
                _releasingMovement.EndMovement();
            }
        }
        else if (_getPositionState() != PositionState.Middle)
        {
            _aligningMovement.SetMovement(_getAligningDistance());
        }
        else
        {
            _releasingMovement.SetMovement(value);
        }
    }