読者です 読者をやめる 読者になる 読者になる

【Unity】The associated script cannot be loadedがなおらない

Scriptの編集をし、いざ実行!と三角形を押してみると、

All compiler erros have to be fixed before you can enter playmode!

と、よく見る文言が出現。
あれ~、どこかで文法ミスってるかな~とコンソールを見るもメッセージ無し。
なにゆえ?
ふと、Hierarchyビューのオブジェクトを見ると、Scriptの欄がこんなことに。

f:id:taka_say:20140226222822j:plain

どういうこと?と早速エラーメッセージで検索開始。

同じ状況になっている人は複数見つかったものの、質問だけ投げられてるフォーラムの投稿が多数。明確な解決法は得られず。
解決したという人も、イマイチ原因は見つけられていないっぽかった。

とりあえずPCごと再起をかけるも、反応変わらず。
Unityのアップデートをして、リトライ。ダメ。
新規プロジェクトを作って、同一スクリプトをそちらに置いて実行。ダメ。
一旦エクスポートし、再度インポート。ダメ。

仕方ないので、スクリプトを点検していく。
Unity上の自分で作ったスクリプトをバックアップ保存し、全削除。
一つずつUnityに再度入れては実行を押し、原因になっているスクリプトを捜す。
最終的に、18個中7個のスクリプトが、Unityに存在すると実行不能になるようだった。
新規に同名のスクリプトファイルを作って、コードだけコピペしてみるも動かない。
通常のコンパイルエラーは出るのかふと気になって、適当な行にaaaaaaと入力して実行。このエラーのメッセージは出力されず、従来と同じ無言のエラー表示。

その後発狂しかけてところ構わずインポートしたり文字打ったりしていたら、何故か直っていた。

あ、ありのまま今起こった(AA略

何が原因か結局わからずじまい。
オブジェクトのスクリプトコンポーネントは消失し、Unity上でスクリプトのpublic変数に設定していた値は消え失せ、復旧に相当時間が掛かった。
とりあえず動くようにはなったから良かったものの、本当に何だったんだ……。
一人の開発でもGitちゃんと使うべきだなあと痛感した夜でしたとさ。

一応参考
Unity crashed, then alll scripts can't be loaded - Unity Answers
General problem with scripts: The associated script cannot be loaded