2024.09.10 - [내일배움캠프/Unity] - 유니티 추가기능 - DOTween
DOTween 시퀀스 기능을 추가로 정리하겠습니다.
CallBack()
Append, Join 에 추가적으로 붙어서 사용됩니다.
이전에 붙은 시퀀스 기능을 수행한 후, Callback 에 지정된 함수를 실행합니다.
public GameObject target;
private float moveSpeed = 1f;
Sequence cubeMove;
void Start()
{
cubeMove = DOTween.Sequence().SetAutoKill(false)
.Append(transform.DOMove(target.transform.position, moveSpeed))
.Append(transform.DORotate(new Vector3(90, 90, 0), moveSpeed))
.Join(transform.DOScale(3, moveSpeed))
.AppendCallback(DebugOne);
}
private void DebugOne()
{
Debug.Log("AppendCallback");
}
이전 시퀀스인 이동, 스케일증가, 회전이 실행된 후, 지정해준 함수의 기능이 작동하는것을 볼 수 있습니다.
Insert
이미 존재하는 시퀀스에 추가로 입력하여 사용합니다.
지정한 시간이 지난 후, Insert에 입력한 시퀀스 내용을 수행합니다.
Sequence cubeMove;
void Start()
{
cubeMove = DOTween.Sequence().SetAutoKill(false)
.Append(transform.DOMove(target.transform.position, moveSpeed))
.Append(transform.DORotate(new Vector3(90, 90, 0), moveSpeed))
.Join(transform.DOScale(3, moveSpeed));
cubeMove.Insert(1f, transform.DOMoveX(-1, 1));
}
기존에 정해준 시퀀스가 수행되던중, 1초가 지나면 Insert로 추가된 X를 -1로 1초 걸려서 움직임을 수행하는것을 볼 수 있습니다.
Prepend
가장 뒤가 아닌, 시퀀스에 가장 앞에 명령을 입력하는 함수입니다.
public GameObject target;
private float moveSpeed = 1f;
Sequence cubeMove;
void Start()
{
cubeMove = DOTween.Sequence().SetAutoKill(false)
.Append(transform.DOMove(target.transform.position, moveSpeed))
.Append(transform.DORotate(new Vector3(90, 90, 0), moveSpeed))
.Join(transform.DOScale(3, moveSpeed))
.Prepend(transform.DOMove(target.transform.position * -1, 1));
}
Prepend 함수가 시퀀스의 가장 뒤에 있는데도, 위에 적힌 Append 보다 먼저 수행되어 (-2, -2) 지점에 도착한 뒤(2, 2) 지점으로 이동하는 모습을 볼 수 있습니다
(target의 좌표가 (2, 2, 0) 입니다.)
SetRelative
현재위치를 (0, 0, 0)으로 두고 움직입니다.
만약 (1, 0, 0) 에 있는 물체에 DOMoveX(2, 1).SetRelative 를 해주면 물체는 (3, 0, 0) 위치로 이동하게됩니다.
Sequence cubeMove;
void Start()
{
cubeMove = DOTween.Sequence().SetAutoKill(false)
.Append(transform.DOMove(target.transform.position, moveSpeed))
.Append(transform.DORotate(new Vector3(90, 90, 0), moveSpeed))
.Join(transform.DOScale(3, moveSpeed))
.Append(transform.DOMoveY(-2, 1).SetRelative());
}
마지막 시퀀스에 (2, -2, 0) 이 아닌, (2, 0, 0) 으로 움직이는것을 볼 수 있습니다
일단 여기까지 하겠습니다.
이후에 추가 내용이 이해되면 3번째 포스팅일 만들게될 수 도 있을것같네요
'내일배움캠프 > Unity' 카테고리의 다른 글
제네릭 SO (0) | 2025.01.02 |
---|---|
요구한것과 이해한것 (0) | 2024.10.25 |
유니티 기능 - Rule Tile (0) | 2024.10.07 |
유니티 기능 - 타일맵 (0) | 2024.10.07 |
유니티 추가기능 - DOTween (0) | 2024.09.10 |