LoginSignup
1
2

More than 3 years have passed since last update.

【Unity】クラス名のミスがないのにスクリプトがアタッチできない現象の解決策

Last updated at Posted at 2021-04-10

概要

Unityを使用していて、スクリプトのファイル名とクラス名が一致しているにも関わらず

インスペクターに「No MonoBehaviour scripts in the file~」、
アタッチしようとすると「Can't add script component [コンポーネント名] because the script class~」

と表示され、スクリプトをアタッチできなくなった現象が発生しました。また既にアタッチしてあったスクリプトは全てエラーとなってしまいました。
自分はUnity初心者ではありますが、本現象を解決する方法が分かったので、備忘録&誰かの役に立てばいいなぁと思いここに残しておきます。

筆者の環境

  • Unity2019.4.20f1(LTS)
  • VisualStudio2017

解決法

結果的には、
C:\Program Files\Unity\Hub\Editor\2019.20f1\Editor\Data\Tools\RoslynScripts
内の unity_csc.bat ファイルをメモ帳で管理者権限で開き、

@ECHO OFF
set APPLICATION_CONTENTS=%~dp0..\..
"%APPLICATION_CONTENTS%\Tools\Roslyn\csc.exe" /shared %*
exit /b %ERRORLEVEL%

引用:https://www.programmersought.com/article/60285000064/

こちらに書き換えることで直りました。

解決までの流れ

まず検索より、この記事にたどり着きました。

この記事の追記にあった

から

C:\Program Files\Unity\Hub\Editor\2019.20f1\Editor\Data\Tools\RoslynScripts

内の unity_csc.bat ファイルをメモ帳で管理者権限で開き、
記事内で修正すべき文とされている

"%APPLICATION_CONTENTS%\Tools\Roslyn\csc" /shared %*

を探しましたが、見つかりませんでした。
そこでさらに検索を重ね、こちらの記事を見つけました。

こちらも前の公式記事と言っていることは同じなのですが、書き直した後のファイルの中身が記載されていました。そこでその内容をunity_csc.bat内に書いたところ、エラーが直りました。

備考

Unity2019.4.2~系のバージョンでは時々起こる現象のようです。

1
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2