背景
3年弱ぶりにUnityを触った初心者です。
間違いがあったらご指摘いただければありがたいです。
事象
オブジェクトに対してスクリプトをアタッチしようとしたときに、下記のメッセージがポップアップで表示されることがあります。
環境
- Windows 10
- Unity 2018.2.19
1. ファイル名とクラス名が一致していない
これが一番起こりやすい事象です。
下記イメージでは、命名を誤ってしまい「Shooter.cs.cs」というファイル名で、クラス名は「Shooter」としています。
この場合、ファイル名「Shooter.cs」に変更することで、アタッチすることが出来るようになります。
2. コードの中に全角スペースがある
スクリプトファイルのコード内に全角スペースがあると、発生することがあります。
全角スペースがないか確認し、存在する場合は半角スペースに置換しましょう。
3. Reimport Allする
ファイル名とクラスが一致している、コード内に全角スペースがないにもかかわらず、
正常にアタッチできない場合は、Reimport Allを試してみましょう。
Projectから右クリックして、下から5番目くらいにあります。
言葉の通り、プロジェクトを1からインポートしてくれます。
4. Unityのバージョンを変更する
Unity Issue Tracker - [2018.1] 'Can't add script behaviour VisualContainerAsset' error when adding script to GO with mismatched file and class name
のように、もしかしたらUnityのバグかもしれません。
最新バージョンを使用していない場合は、アップデートをしてみましょう。
終わりに(雑記)
学生時代に触って以来、Unityを触りました。
当時はUnity 4系を使っていました。
uGUIが追加されて、「なにこれすごい」って1人テンション上がっていたことを思い出します。
3年くらいたって、ちょっと知らない設定とか増えていましたが、UIは当時のままで安心しました。
当時は、UnityとVisual Studioでたまに固まってしまっていましたが、今はかなりサクサクでした。
(自分のPCスペックが上がった影響なだけかもしれませんが…)
あと、昔Unity 4系で作ったProjectをImportしたら、エラー吐きまくって悲しくなりました。