【Unity】DOTween を ToUniTask() できないときの対処法

Unity

はじめに

以下のコードのように 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」を押すとコンパイルが走り、先ほどのコンパイルエラーは発生しなくなります。

最後に

参考記事

お問い合わせ

    タイトルとURLをコピーしました