質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
AdMob

AdMobは、事前に指定した条件に従ってアプリに広告を表示するGoogleのサービス。開発者の向けのサービスで、広告を掲載することにより、収益を得ることが可能です。その他、見た目や雰囲気などアプリに合う広告に変更したり、広告表示の場所を指定することもできます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

0回答

1386閲覧

リワード広告で『デリゲート〜に一致する〜のオーバーロードはありません』というエラーが出ますがどのようなプログラムを書けば良いですか?

Hiro-Academy

総合スコア3

AdMob

AdMobは、事前に指定した条件に従ってアプリに広告を表示するGoogleのサービス。開発者の向けのサービスで、広告を掲載することにより、収益を得ることが可能です。その他、見た目や雰囲気などアプリに合う広告に変更したり、広告表示の場所を指定することもできます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2021/09/20 10:35

編集2021/09/23 01:43

リワード広告を実装しようとすると次のようなエラーが出てしまい、実行ができません。どのようにスクリプトを書けばエラーが出ないようになりますか?

エラー

Assets/Scripts/Reward.cs(28,9): error CS0123: デリゲート 'EventHandler<AdFailedToLoadEventArgs>' に一致する 'HandleRewardedAdFailedToLoad' のオーバーロードはありません

書いたスクリプト

C#

1using UnityEngine.Events; 2using UnityEngine; 3using GoogleMobileAds.Api; 4using GoogleMobileAds.Common; 5using UnityEngine.UI; 6using System; 7using System.Collections.Generic; 8 9public class Reward : MonoBehaviour 10{ 11 private RewardedAd rewardedAd; 12 13 public void Start() 14 { 15 string adUnitId; 16#if UNITY_ANDROID 17 adUnitId = "ca-app-pub-3940256099942544/5224354917"; 18#elif UNITY_IPHONE 19 adUnitId = "ca-app-pub-3940256099942544/1712485313"; 20#else 21 adUnitId = "unexpected_platform"; 22#endif 23 this.rewardedAd = new RewardedAd(adUnitId); 24 25 // Called when an ad request has successfully loaded. 26 this.rewardedAd.OnAdLoaded += HandleRewardedAdLoaded; 27 28     //28行目 29 // Called when an ad request failed to load. 30 this.rewardedAd.OnAdFailedToLoad += HandleRewardedAdFailedToLoad; 31 32 // Called when an ad is shown. 33 this.rewardedAd.OnAdOpening += HandleRewardedAdOpening; 34 // Called when an ad request failed to show. 35 this.rewardedAd.OnAdFailedToShow += HandleRewardedAdFailedToShow; 36 // Called when the user should be rewarded for interacting with the ad. 37 this.rewardedAd.OnUserEarnedReward += HandleUserEarnedReward; 38 // Called when the ad is closed. 39 this.rewardedAd.OnAdClosed += HandleRewardedAdClosed; 40 41 // Create an empty ad request. 42 AdRequest request = new AdRequest.Builder().Build(); 43 // Load the rewarded ad with the request. 44 this.rewardedAd.LoadAd(request); 45 } 46 47 public void HandleRewardedAdLoaded(object sender, EventArgs args) 48 { 49 MonoBehaviour.print("HandleRewardedAdLoaded event received"); 50 } 51 52 public void HandleRewardedAdFailedToLoad(object sender, AdErrorEventArgs args) 53 { 54 MonoBehaviour.print( 55 "HandleRewardedAdFailedToLoad event received with message: " 56 + args.Message); 57 } 58 59 public void HandleRewardedAdOpening(object sender, EventArgs args) 60 { 61 MonoBehaviour.print("HandleRewardedAdOpening event received"); 62 } 63 64 public void HandleRewardedAdFailedToShow(object sender, AdErrorEventArgs args) 65 { 66 MonoBehaviour.print( 67 "HandleRewardedAdFailedToShow event received with message: " 68 + args.Message); 69 } 70 71 public void HandleRewardedAdClosed(object sender, EventArgs args) 72 { 73 MonoBehaviour.print("HandleRewardedAdClosed event received"); 74 } 75 76 public void HandleUserEarnedReward(object sender, Reward args) 77 { 78 string type = args.Type; 79 double amount = args.Amount; 80 MonoBehaviour.print( 81 "HandleRewardedAdRewarded event received for " 82 + amount.ToString() + " " + type); 83 } 84}

追記
32行目にも同じようなエラーが出てしまいました。どのような引数の型を書けばエラーが発生されなくなりますか?

エラー

Assets/Scripts/Reward1.cs(32,9): error CS0123: デリゲート 'EventHandler<AdErrorEventArgs>' に一致する 'HandleRewardedAdFailedToShow' のオーバーロードはありません

スクリプト

C#

1using UnityEngine.Events; 2using UnityEngine; 3using GoogleMobileAds.Api; 4using GoogleMobileAds.Common; 5using UnityEngine.UI; 6using System; 7using System.Collections.Generic; 8 9public class Reward1 : MonoBehaviour 10{ 11 private RewardedAd rewardedAd; 12 13 public void Start() 14 { 15 string adUnitId; 16#if UNITY_ANDROID 17 adUnitId = "ca-app-pub-3940256099942544/5224354917"; 18#elif UNITY_IPHONE 19 adUnitId = "ca-app-pub-3940256099942544/1712485313"; 20#else 21 adUnitId = "unexpected_platform"; 22#endif 23 this.rewardedAd = new RewardedAd(adUnitId); 24 25 // Called when an ad request has successfully loaded. 26 this.rewardedAd.OnAdLoaded += HandleRewardedAdLoaded; 27 // Called when an ad request failed to load. 28 this.rewardedAd.OnAdFailedToLoad += HandleRewardedAdFailedToLoad; 29 // Called when an ad is shown. 30 this.rewardedAd.OnAdOpening += HandleRewardedAdOpening; 31 // Called when an ad request failed to show. 32 this.rewardedAd.OnAdFailedToShow += HandleRewardedAdFailedToShow;//32行目 33 // Called when the user should be rewarded for interacting with the ad. 34 this.rewardedAd.OnUserEarnedReward += HandleUserEarnedReward; 35 // Called when the ad is closed. 36 this.rewardedAd.OnAdClosed += HandleRewardedAdClosed; 37 38 // Create an empty ad request. 39 AdRequest request = new AdRequest.Builder().Build(); 40 // Load the rewarded ad with the request. 41 this.rewardedAd.LoadAd(request); 42 } 43 44 public void HandleRewardedAdLoaded(object sender, EventArgs args) 45 { 46 MonoBehaviour.print("HandleRewardedAdLoaded event received"); 47 } 48 //AdErrorEventArgs 49 //AdFailedToLoadEventArgs 50 public void HandleRewardedAdFailedToLoad(object sender, AdFailedToLoadEventArgs args) 51 { 52 MonoBehaviour.print( 53 "HandleRewardedAdFailedToLoad event received with message: " 54 + args.Message); 55 } 56 57 public void HandleRewardedAdOpening(object sender, EventArgs args) 58 { 59 MonoBehaviour.print("HandleRewardedAdOpening event received"); 60 } 61 62 public void HandleRewardedAdFailedToShow(object sender, AdFailedToLoadEventArgs args) 63 { 64 MonoBehaviour.print( 65 "HandleRewardedAdFailedToShow event received with message: " 66 + args.Message); 67 } 68 69 public void HandleRewardedAdClosed(object sender, EventArgs args) 70 { 71 MonoBehaviour.print("HandleRewardedAdClosed event received"); 72 } 73 74 public void HandleUserEarnedReward(object sender, Reward args) 75 { 76 string type = args.Type; 77 double amount = args.Amount; 78 MonoBehaviour.print( 79 "HandleRewardedAdRewarded event received for " 80 + amount.ToString() + " " + type); 81 } 82}

試したこと

・プラグインを最新バージョンにしてインポートした ・unityを再起動した ・HandleRewardedAdFailedToShowの引数の型をAdFailedToLoadEventArgsにもしてみましたがエラーが出ました

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2021/09/20 10:45

HandleRewardedAdFailedToLoad の引数の型が AdFailedToLoadEventArgs ではなく AdErrorEventArgs になっているからでは?
Hiro-Academy

2021/09/20 11:38

ありがとうございます。質問させていただいたものは解決できたのですが、HandleRewardedAdFailedToShowの方が今度はエラーが出てしまいます。引数の型をどのようにすれば先ほどのように解決することができますか?
Zuishin

2021/09/20 11:40

だめだこりゃ。
bboydaisuke

2021/09/20 11:45

何のエラーが出力されたのか示さないとどう直せばいいかなんて確定できないと思いますよ。
Hiro-Academy

2021/09/20 13:22 編集

新しく出たエラーについて追記しました
BeatStar

2021/09/20 13:02

質問を別で立てるのではなく、「編集」をしましょう。 ケータイからでも編集はできますし、PCからならなおさらです。
bboydaisuke

2021/09/20 13:38

残念ながら「同じようなエラー」に対しては、質問内のコードは何も間違ってません。多分、現状とは貼ってあるコードなどの「事実」が違うんでしょう。
Hiro-Academy

2021/09/21 08:39

分かりました。他の方法も色々試してみることにします。今までの回答ありがとうございました。また質問した時はよろしくお願いします。
BeatStar

2021/09/21 08:47 編集

別の理由(ファイルが更新されていない等)が原因の可能性があるようなので、解決したら「自己解決」のやつで閉じてください。(解決してからでいいです)
Hiro-Academy

2021/09/21 13:35

分かりました。更新したり色々試して解決法を探してみます!
Zuishin

2021/09/21 14:18

まあ、Reward.cs と Reward1.cs の二種類ある時点で想像つきますけどね。
Hiro-Academy

2021/09/22 12:50

スクリプト名をReward1にした時にクラス名もReward1に直したのですが、やはりエラーは直りませんでした。32行目のエラーが出た時のスクリプトも一応追記しておきます。
bboydaisuke

2021/09/22 16:36 編集

> 32行目のエラーが出た時のスクリプト エラーメッセージとコードの内容が一致してないようです。エラーメッセージとコードを示す時は必ず「そのエラーが出た時点でのコード」を示さないと意味がありません。
Hiro-Academy

2021/09/23 01:29

分かりました。 右側に //32行目 と書いておきますね。
Hiro-Academy

2021/10/01 16:04

HandleRewardedAdFailedToLoadの4行下の+ args.Messageを削除し、 HandleRewardedAdFailedToShowの引数の型をAdErrorEventArgsにすることで エラーが無くなりましたが、+ args.Messageを削除するのは大丈夫だったのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問