본문 바로가기
게임 개발(유니티)/공부사항

모바일 화면 고정 / DOTween 기능

by goraku97 2025. 12. 17.

모바일로 빌드시 화면고정 방법

Edit

유니티 어플리케이션에서
Edit → Project Settings… → Player -> Resolution and Presentation 
으로 진입.

그리고 Orientation 의 Default Orientation을 Auto Rotation으로 설정

 

- 모바일에서 가로화면으로만 플레이를 제한하고 싶을때

  Landscape Right, Landscape Left 에만 체크
  Portrait / Portrait Upside Down은 둘 다 해제

 

- 모바일에서 세로화면으로만 플레이를 제한하고 싶을때

   Portrait / Portrait Upside Down 에만 체크

    Landscape Right, LandscapeLeft은 둘 다 해제

 

DOTween 기능


UI/오브젝트의 이동·회전·스케일·알파·색상·카메라 연출 같은 걸 코루틴/애니메이터 없이 
코드로 간단하게 구현이 가능.

 

1. 자주 쓰이는 생성 함수들

.DO : 대상의 변화를 직접 지시할 수 있음 (Tween 의 시작)

 

Transform

 

.DOMove : n초 동안 지정한 지점까지  점점 이동
transform.DOMove(endPosduration)

.DOMoveX/Y/Z : n초 동안 지정한 한 축(X/Y/Z)으로만  점점 이동
transform.DOMoveX/Y/Z(endPosduration)

.DOScale : n초 동안 지정한 스케일만큼 점점 커짐
transform.DOScale(Vector3/floatduration)

.DORotate : n초 동안 지정한 회전값만큼 점점 커짐
transform.DORotate(Vector3duration)

.DOShakePosition : n초 동안 지정한 범위만큼 n번 만큼 흔들리고,
                                흔들릴때는 지정된 각도 범위 안에서 흔들림
transform.DOShakePosition(durationstrengthvibratorandomness)

 

UI

 

.DOAnchorPos : n초 동안 지정한 지점까지  점점 이동
rectTransform.DOAnchorPos(endPosduration)

.DOAnchorPosX/Y/Z : n초 동안 지정한 한 축(X/Y/Z)으로만  점점 이동
rectTransform.DOAnchorPosX/Y/Z(endPosduration)

.DOFade : n초 동안 지정한 알파값으로  점점 변경됨
image/text.DOFade(alphaduration)

.DOColor : n초 동안 지정한 색상값(RGB)으로 점점 변경됨
image/text..DOColor(colorduration)

 

.DOShakeAnchorPos : n초 동안 지정한 범위만큼 n번 만큼 흔들리고, 
                                      흔들릴때는 지정된 각도 범위 안에서 흔들림
                               (snapping : 흔들릴 때 좌표를 픽셀 단위로 딱딱 끊어서 움직이게 할지 않할지)
                               (fadeOut : 시간이 끝나갈수록 흔들림 강도가 서서히 줄어들게 할지 않할지 )

 

transform.DOShakePosition(durationstrengthvibratorandomnesssnappingfadeOut)

 

 

2. Tween 을 조정하는 체인 함수들

.Set : 추가로 연결 할 수 있는 설정
.On : 람다를 이용한 콜백 함수 실행

 

.SetEase : 트윈이 지정된 시간동안 언제 빨라지고/느려지는지 설정

  Ease.Linear : 처음부터 끝까지 속도가 일정함(가속/감속 없음)
  Ease.InQuad : 시작이 느리고, 시간이 갈수록 점점 빨라짐 (가속)
  Ease.OutQuad : 시작이 빠르고, 끝으로 갈수록 점점 느려짐 (감속)
  Ease.InOutQuad : 시작은 느리게, 중간에 가장 빠르게, 끝은 느리게
  Ease.OutBack : 목표 지점에 도달하기 전에 살짝 오버슈트(튕김) 했다가 되돌아오며 멈춤

 

.SetDelay : 트윈이 Play()되었을 때 바로 시작하지 않고 delay만큼 기다렸다가 시작

 

  .SetDelay(float delay) : n만큼 트윈을 기다렸다가 재생 

 

.SetLoops : 트윈의 반복재생을 설정

 

  LoopType.Restart (기본) :  매번 처음부터 n번 만큼 다시 재생

    .SetLoops(int loops,  LoopType.Restart);

  LoopType.Yoyo : n번 만큼 트윈을 정방향으로 한 번 재생한 다음, 
                              같은 경로/값을 그대로 거꾸로(역방향) 재생
 
   .SetLoops(int loopsLoopType.Yoyo);

 

.OnStart(() => {}) : 트윈이 실제로 시작되는 그 순간 1번 호출
                          (SetDelay()가 있으면 딜레이가 끝난 뒤, 첫 프레임에 시작될 때 호출.)

 

.OnUpdate(() => {}) : 트윈이 재생 중인 매 프레임(업데이트 틱)마다 계속 호출

 

.OnComplete(() => {}) : 트윈이 끝까지 정상적으로 완료되었을 때 1번 호출.

 

.OnKill(() => {}) : 트윈이 Kill 되었을 때 호출(삭제/종료 이벤트).

 

3. Sequence (연출을 묶는 기능)

  - .Append : 트윈 마지막에 추가
  - .Insert : 일정 시간에 시작 (처음에 있는 매개변수가 시작시간)
               (** 만약 .Prepend 가 있다면 그 duration 만큼 시작시간을 중가)
  - .Join : 앞에 추가된 트윈과 동시 시작
  - .Prepend : 맨 처음에 추가

 

4. 제어/정리 함수들

 

  tween.Kill() : 그 트윈 1개를 즉시 종료(삭제)
                   (트윈은 더 이상 업데이트되지 않고, DOTween 내부에서도 제거)

  tween.Pause() : 트윈을 일시정지
                       (트윈은 살아있고(삭제 X), 시간 진행만 중지)

  tween.Play() : 일시정지된 트윈을 재생/재개
                     (이미 재생 중이면 변화가 없거나 그대로 유지)

  tween.Complete() : 트윈을 즉시 ‘완료 상태’로 만들어 마지막 값까지 한 번에 적용
                           (예: DOMove(5, 1s) 진행 중 Complete() → 즉시 위치가 목표값(5)로 감)

  target.DOKill() : 특정 “타겟”에 연결된 트윈들을 한꺼번에 Kill
                        (예: transform.DOKill() → 그 transform에 걸린 트윈들을 전부 종료)

 

 

---- 참고 스크립트 

 

DotweenStudy1.cs
0.00MB
LotteryEffect.cs
0.01MB