公式から対策が公開されました(追記)
こちらを参考にしてください。なるほど環境変数のPATHだったのですね。
であればユーザーを作り直せば回避できたと言う。
https://helpdesk.unity3d.co.jp/hc/ja/articles/360037037212
やらかした
急にUnityが言うことをきかなくなってしまいました。
コンパイルが全く通らなくなりました。
思い当たる直接の原因はUnityを起動した状態のまま、その開いているプロジェクトをコピーしたことです。
検索してもファイル名とクラス名が違う話ばかり…そういうことではないんです。
Unityを再インストールしても症状は変わらず。そんな場合の対策記事です。
環境
- OS:Windows10 Pro
- Unityバージョン:2019.2.12.f1
公式の解決策
こちらの作業を行ってください。
https://helpdesk.unity3d.co.jp/hc/ja/articles/360037037212
自分で編み出した解決策
- Unityをアンインストールします。
- Unityのアンインストーラーが削除しないファイルを消します。
- 新しくWindowsのユーザーを作ります。
- 再度Unityをインストールします。
出た症状や詳細
起こったことや情報をまとめます。
症状
-
急にコンポーネントをアタッチできなくなりました。
- アタッチしようとするとエラーメッセージが出てつけられなくなります。メッセージは
Can't add script component 'コンポーネント名' because the script class cannot be found. Make sure that there are no compile errors and that the file name and class name match.
- スクリプトを選択すると
No MonoBehaviour script in the file, or their names do not match the file name.
と言うメッセージがインスペクタに表示されます。
- アタッチしようとするとエラーメッセージが出てつけられなくなります。メッセージは
-
空白メッセージの謎のコンパイルエラーが常に発生します。
-
Visual Studio上でも作りたてのスクリプトが
using UnityEngine
やMonoBehaviour
の参照を認識しません。 -
アンインストールしようがアプリケーションデータを消そうが再インストールしたら症状が続きます。
もしかして
- 権限関係が破壊されたのでは、という情報をもらいました。権限が破壊され操作不能になったファイルを含む部分の権限を正しく再設定すればよいのは道理です。ただし検証や修復には莫大な時間がかかるでしょう。私は新しいユーザーを作ることで済ませることにしました。