Help us understand the problem. What is going on with this article?

[Unity]"Can't add script behavior XXXX.The script needs to derive from MonoBehaviour"の改善方法4つ

More than 1 year has passed since last update.

背景

3年弱ぶりにUnityを触った初心者です。
間違いがあったらご指摘いただければありがたいです。

事象

オブジェクトに対してスクリプトをアタッチしようとしたときに、下記のメッセージがポップアップで表示されることがあります。

error_message.png

環境

  • Windows 10
  • Unity 2018.2.19

1. ファイル名とクラス名が一致していない

これが一番起こりやすい事象です。
下記イメージでは、命名を誤ってしまい「Shooter.cs.cs」というファイル名で、クラス名は「Shooter」としています。

scripts.png

この場合、ファイル名「Shooter.cs」に変更することで、アタッチすることが出来るようになります。

2. コードの中に全角スペースがある

スクリプトファイルのコード内に全角スペースがあると、発生することがあります。
全角スペースがないか確認し、存在する場合は半角スペースに置換しましょう。

3. Reimport Allする

ファイル名とクラスが一致している、コード内に全角スペースがないにもかかわらず、
正常にアタッチできない場合は、Reimport Allを試してみましょう。
Projectから右クリックして、下から5番目くらいにあります。

reimport.png

言葉の通り、プロジェクトを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したら、エラー吐きまくって悲しくなりました。

riekure
目標は100投稿
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away