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); } }
/* 새 이동의 기본 값 설정 * * 값 '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); } }