naichi's lab

3日後の自分(他人)への書き置き

【Unity】RiderでUniTask使うとエラー「The return type of an async method must be void, Task or Task<T>」が出る

環境

  • MacOSX Mojave 10.14.2
  • Unity 2018.3.0f2
  • Rider 2018.3

概要

タイトルの通り、RiderでUniTaskを使ってこんな感じのコードを書くと、

async UniTask Hoge()
{
    //コード
}

こういうエラーが出る。

The return type of an async method must be void, Task or Task<T>  

f:id:naichilab:20181227212815p:plain

asyncメソッドは voidTaskTask<T> を返せやコラーってことらしい。

ちなみにUnityエディタ側のコンソールにはエラー出ていないし実行も可能。

解決方法

  1. Unity -> Preference -> Rider -> Override LangVersionにチェックを入れる。
  2. LangVersionを7.3にする。 f:id:naichilab:20181227213512p:plain
  3. Unityを再起動

これでエラー全部消えました。

さすがとりすーぷ先生。

ギルドでポロっと呟いたら即答もらえた。ありがたや〜。