UnityのAdmobでエラー『No overload for ‘HandleUserEarnedReward’ matches delegate ‘EventHandler‘』

2022年12月16日

突然発生したエラー

UnityのAdmobプラグインを更新してた時に、突然発生したエラー…

該当の部分でコンパイルエラーが何故か発生。

this.rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
エラー:No overload for 'HandleUserEarnedReward' matches delegate 'EventHandler<Reward>'

GoogleMobileAds-v7.3.1https://github.com/googleads/googleads-mobile-unity/releases/tag/v7.3.1)にアップデートした影響なのかと思い、メソッドの引数変わったのかと思い調査しましたが、全然今まで通りでした…

原因が全く思いつかず、最悪バージョンを戻そうかと思いつつ……

原因はファイル名

いろいろと調査した結果、その原因が判明しました。

今回、リワードのローカライズ制御用の新しいスクリプトファイルを作ってたんですが、そのC#のスクリプトファイルの名前を「Reward.cs」としていたのが原因でした。ファイル名をrewardにしたらNGだった!!

RewardLocalize.csとファイル名を変更したらコンパイルエラーが取れました。

これは、かなり難しいトラップ……(;´・ω・)