Unityで文法エラーがないのに All compiler errors have to be fixed before you can enter playmode が消えない

この記事の所要時間: 210

どうも、大したことではないんですが、検索しても情報が無かったり いつの間にか治ってたなんて解決に繋がらないような記事ばっかりだったので、備忘録的に書いておこうかと。

この記事は プログラムの文法的なエラーが全くない場合にも関わらず、エラーが消えない場合の記事です。

出たエラーはこちら

All compiler errors have to be fixed before you can enter playmode

アタッチしたすべてのC#スクリプトでも

The associated script can not be loaded.
please fix any compile errors and assign a valid script.

のエラーが。
環境は Unity 5.3.5 , Visual Studio 2015

もし直前に編集したファイルのみでこれが表示されているのなら問題探しも楽なんですが、全部のファイルで、と言われるととてもじゃないですが探しきれません。

変数のスペルミスとかセミコロンのつけ忘れ等も疑ったのですが解決しません。
果てはスクリプトを打ちなおしたりプロジェクトを作り直したり再起動をしてみたり、いろいろ試したのですが一向に解決する気配がありません。

結論から言うと”コード内に全角スペースが紛れていた”ことが原因でした。
vsではビルドとか通ってしまうので気づけませんでした・・・
どうやらUnityは全角スペースが入っていると全体の問題とみなして、どのファイルでエラーが発生しているのか教えてくれないようですね(キレそう)。

vXZzup5d.jpg
fbAZWg5t.jpg

Visual Studioの場合 [編集]→[詳細]→[スペースの表示] 又は [Ctrl+R → Ctrl+W] で上の画像のようにスペースやタブを表示することができます。

同じ問題で困っている方はダメ元で探してみるといいかもしれません・・・

© Unity Technologies Japan/UCL