해결된 질문
작성
·
317
·
수정됨
0
질문은 아니고 Unity6에서 DoTweend 과 UniTask를 같이 사용시
'TweenerCore<float, float, FloatOptions>' does not contain a definition for 'ToUniTask' and the best extension method overload 'CancellationTokenExtensions.ToUniTask(CancellationToken)' requires a receiver of type 'CancellationToken'
같은 에러 메세지를 만나게 됩니다.
DOTween의 Tween 객체를 직접 await 할 수 없기 때문에 발생하는 문제라고 합니다.
이 문제를 해결하기 위해서는 DOTween의 Tween을 UniTask로 변환해주는 확장 메서드를 사용해야 합니다. ToUniTask() 확장 메서드를 사용하면 된다고 합니다.
예시로 다음과 같이 하면 됩니다.
우선 Edit > Project Settings 에서
Scripting Define Symbols에
다음과 같은 같은 문구를 추가 합니다.
"UNITASK_DOTWEEN_SUPPORT"
테스트 해본 바로는 위에 문구 추가까지만 해도 에러는 사라지는거 같습니다. 그래도 확실히 하기 위해 아래와 같이
UniTask 안에서 트윈 호출시 알래와 같이 작성 합니다.
//에러가 나는 트윈 호출 위치애서 DOTween 메서드 호출 뒤에 .ToUniTask()
await image.DOColor(Color.red, 0.5f).ToUniTask();