UnityでMissingMethodExceptionが発生する時の対処法
以前某所で「プログラム的に正常なのに動かない、コンパイルエラーが発生してないのにプログラムが正常に動作しない」的な話があったので、その後いろいろと確認していた処、面白い事が判明しました。
現象
どうもJavaScriptを使用している場合、#pragmaを書かないとコンパイルエラーが発生するようなケースでもコンパイルエラーを発してくれないみたいです。
たとえば、下のコードは拡張メソッドとか使用してませんが、コンパイルが通ります。
こんなコードも通っちゃったりします。間違いは何処でしょうか。
さて、このようなコードでプログラムを実行した場合なにが起こるかと言うと、メソッドの場合はMissingMethodExceptionが発生します。また、存在しないフィールドやプロパティを参照している場合は問答無用でnullが入ります。
対処法は……#pragmaをソースコードの頭につけてコンパイルエラーを直せば良いです。少なくとも#pragmaを付けてればちゃんと検知してくれます。
もっと良い方法をご所望で? C#を使いましょう。