はじめに
以下のコードのように DOTween のメソッドに対して ToUniTask() しようとすると「error CS1929: ‘TweenerCore’ does not contain a definition for ‘ToUniTask’ and the best extension method overload」というコンパイルエラーが発生したので、それの対処法をメモしておきます。
using Cysharp.Threading.Tasks;
using DG.Tweening;
using UnityEngine;
public class Sample : MonoBehaviour
{
private async void Start()
{
// error CS1929: 'TweenerCore' does not contain a definition for 'ToUniTask' and the best extension method overload
await transform.DOMove(Vector3.zero, 1f).ToUniTask();
}
}
この記事での環境は以下の通りです。
- Windows 11
- Unity 6000.2.6f2
- DOTween (HOTween v2) 1.2.765
- UniTask 2.5.10
この UniTask は GitHub のリポジトリの Releases からダウンロードした unitypackage をインポートしたものです。
対処法
結論としては「Edit > Project Settings… > Player > Other Settings > Script Compilation」に「UNITASK_DOTWEEN_SUPPORT」を追加して「Apply」を押しましょう。

「Apply」を押すとコンパイルが走り、先ほどのコンパイルエラーは発生しなくなります。
最後に
参考記事
- 【Unity】How to convert DoTween to UniTask and wait to complete all sequences.
- Unityで共通のdefineを定義する【Unity】【C#】

