シロツグラフ

田舎のサラリーマン。エラーとバグと、時々クラッシュ。

Unityで、You are trying to create a MonoBehaviour using the 'new' keyword. と警告がでる件について

 

こんにちは、シロツグです。

 

Unityを使ってAndroid端末向けにアプリを作っているとき、

 

AdMob(インタースティシャル)を導入して再生ボタンを押したらこんなエラーが出ました。

 

You are trying to create a MonoBehaviour using the 'new' keyword. (以下省略)

 

ほぁ、なんじゃこりゃ?

どれどれ調べてみよう、ほうほう、よくわからん。

 

結果的にどこをどうすればいいかというと

 

①空のオブジェクトを作成

②作った空のオブジェクトの名前を変更(例、test_obj)

③[Assets]→[GoogleMobileAds]→[Platforms]→[Unity]の中にある[ButtonBehaviour.cs]を作った空のオブジェクト(test_obj)にアタッチする。

 

④[Assets]→[GoogleMobileAds]→[Platforms]→[Unity]の中にある。

[InterstitialClient.cs]の中身を直します。

 

buttonBehaviour = new ButtonBehaviour(); って書いてあるところ。

これを、

ButtonBehaviour buttonBehaviour = GameObject.Find("test_obj").GetComponent<ButtonBehaviour>();

に変えます。

 

するとエラーは消えました。

 

 さて、何が問題だったのでしょうか?

 

シロツグ、正直何が問題だったのかわかってません(笑)

想像ですが、おそらくUnityでは実行できないカタチで書かれ方だったのかな?と思ってます。

 

詳しい方、教えていただけたら幸いです。

 

まぁ何はともあれ、警告が解消されて動いたのでまぁ良かったのかな?と

 

未来のシロツグ、また同じエラーが出ることであろう。

 

この日記を読めば解決だ。

 

あ、そうそう。

 

AdMobを導入した時点で、JAVA_HOMEのエラーが出た方。

 

そのエラーは、

 

Unityの[編集]→[環境設定]→[外部ツール]の中の

下のほうにある

JDK Installed with Unity (recommended)

Android NDK Installed with Unity (recommended)

Gradle Installed with Unity (recommended)

終了時にGradleデーモンを停止

 

この4つのチェックを全部外して、もう一回全部チェックして

 

画面左上の[アセット]から

[External Dependency Manager]→[Android Resolver]→[Force Resolve ]

をクリックしたらエラーはなくなりました。

 

参考になるかわからないけど、こんな感じで解決しました。

 

間違ってたら詳しい方、教えてください。

 

では、また。