謎の挙動の原因がはっきりわかりました。
原因はmonoのデフォルトのソースコードテキストエンコーディングがutf-8
だからでした。
このエンコーディングの場合、
日本語の行コメントの最後の改行が認識されないようです。
例えば、
//あいうえお
if(false)←この位置でやっと改行
{
}
つまり、コンパイラにとっては
//あいうえおif(false)
{
}
と見えている状態になってます。
解決策は、日本語行コメントアウトを使わないか、
ソースコードをテラパッド等の外部エディタでUnicodeにエンコーディングを
変更すれば直ります。
Unityの再インストールを3回ほどやってとんだ時間の無駄でした。
みなさんも気を付けてください。