環境
- 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>
asyncメソッドは void
か Task
か Task<T>
を返せやコラーってことらしい。
ちなみにUnityエディタ側のコンソールにはエラー出ていないし実行も可能。
解決方法
Unity 2018.3をRiderで開発しているときに、C# 7.3を使うためにはここを上書きする必要がある。 pic.twitter.com/qoQp9q1U08
— とりすーぷ (@toRisouP) 2018年12月18日
- Unity -> Preference -> Rider -> Override LangVersionにチェックを入れる。
- LangVersionを7.3にする。
- Unityを再起動
これでエラー全部消えました。
さすがとりすーぷ先生。
ギルドでポロっと呟いたら即答もらえた。ありがたや〜。
2019.08.26 再発
Unity 2019.2.1f1 と Rider 2019.2.1 を使ってて、突然再発しました。
色々ググった結果、
Rider -> Preferences -> Build, Execution, Deployment -> Toolset and Build
にある Mono executable path
と Use MSBuild version
が古いUnityのままだったのでこれを選びなおしたらエラーは消えました。