テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

UnityでMissingMethodExceptionが発生する時の対処法

以前某所で「プログラム的に正常なのに動かない、コンパイルエラーが発生してないのにプログラムが正常に動作しない」的な話があったので、その後いろいろと確認していた処、面白い事が判明しました。

 現象

どうもJavaScriptを使用している場合、#pragmaを書かないとコンパイルエラーが発生するようなケースでもコンパイルエラーを発してくれないみたいです。

 

たとえば、下のコードは拡張メソッドとか使用してませんが、コンパイルが通ります。

f:id:tsubaki_t1:20150718041731p:plain

こんなコードも通っちゃったりします。間違いは何処でしょうか。

f:id:tsubaki_t1:20150718042007p:plain

さて、このようなコードでプログラムを実行した場合なにが起こるかと言うと、メソッドの場合はMissingMethodExceptionが発生します。また、存在しないフィールドやプロパティを参照している場合は問答無用でnullが入ります

f:id:tsubaki_t1:20150718042239p:plain

対処法は……#pragmaをソースコードの頭につけてコンパイルエラーを直せば良いです。少なくとも#pragmaを付けてればちゃんと検知してくれます。

 

もっと良い方法をご所望で? C#を使いましょう

関連

unitygeek.hatenablog.com