无法添加脚本组件,因为找不到脚本 class?
Can't add script component because the script class cannot be found?
昨天我把unity从unity5更新到2018.2.2f1。更新 2018.2.2f1 后未加载 Unity 脚本。
一旦我尝试播放场景,脚本就没有加载,我无法再次添加脚本,它给出了这个错误:
Can't add script component 'CubeScript' because the script class
cannot be found. Make sure that there are no compile errors and that
the file name and class name match.
如果您还有项目的旧副本,请先将 Unity 项目升级到 Unity 2017,然后再升级到 2018.2.2f1。
以下是您可能会遇到此错误的几个可能原因(很可能是从以下位置订购的)
1。脚本名称与 class 名称不匹配。
如果脚本名称为MyClass
,class名称必须为MyClass
。这也是区分大小写的。仔细检查以确保这不是问题所在。为确保这不是问题所在,请复制 class 名称并将其粘贴为脚本名称以确保这不是问题所在。
请注意,如果您在一个脚本中有多个 class,则应与脚本名称匹配的 class 名称是派生自 [=12= 的 class ].
2。您的脚本有错误。由于这是一次升级,您可能会使用现在已弃用和删除的 API。用 Visual Studio 打开你的脚本,看看那里是否有错误,然后修复它。代码下通常有一条红线表示有错误。
3。使用 Unity 导入器及其自动升级脚本导入错误。
要尝试的事情:
A。首先要做的是重启Unity Editor。
B。右键单击项目选项卡,然后单击 "Reimport All"
C。如果还有问题,唯一剩下的就是删除有问题的脚本并创建一个新脚本。如果脚本附加到场景中的许多游戏对象,则有一种更简单的方法可以做到这一点。
A。打开脚本,将其内容复制到记事本中。
B。从编辑器和 项目 选项卡上右键单击脚本 "CubeScript"、select "Find References In Scene"。
C.Unity 现在将只显示附加了此脚本的所有游戏对象。删除旧脚本。创建一个新脚本,然后将记事本中的内容复制到这个新脚本中。现在,您只需将新脚本拖到场景中所有已过滤的游戏对象即可。对每个受影响的脚本执行此操作。这是一项手动工作,但完成后应该会解决您的问题。
除其他答案外还有一件事可能有帮助
- 使从 MonoBehaviour 继承的 class 成为文件中的第一个 class。它为我解决了这个问题。
出于历史目的在此发帖,如果来自 Google 的人最终出现在这里,我确实遇到了同样的问题(我在 Windows 10),这是我解决它的方法:
- 如果您单击控制台,您应该会看到一个空白错误。别担心,这是一个编辑器错误,您可以看到编辑器日志 by selecting the console's window dropdown and selecting Open Editor Log.
对我来说,问题是找不到 "Tools\Roslyn\csc",Unity 用来编译 C# 文件的东西。
- 我打开
C:\Program Files\Unity\Hub\Editor19.2.14f1\Editor\Data\Tools\RoslynScripts\unity_csc.bat
并在行 "%APPLICATION_CONTENTS%\Tools\Roslyn\csc" /shared %*
中添加了“.exe”
(这一行现在应该是:"%APPLICATION_CONTENTS%\Tools\Roslyn\csc.exe" /shared %*
)
现在完美运行了。
检查控制台错误并修复它们是解决问题的好方法"Can't add script component because the script class cannot be found?",尽管错误似乎无关紧要。
当我修复其他脚本中的错误时,这对我有用。
对我来说,我发现这是一个我没有使用的脚本,它链接到我删除的播放器和其他脚本。
我对 Unity 和游戏开发完全陌生,但我发现通过输入不正确的名称使错误为真,然后输入正确的名称似乎可以“欺骗”Unity 以修复其错误。
这就是堆积如山的一些原因。
1
。您的脚本名称与您的 class 名称不同。
2
。可能是你的脚本有错误。
这里是解决问题的几种方法。
1
。将相同的脚本名称和 class 添加到此脚本中。
2
。发现有错误?并尝试解决它。
对我来说,问题是另一个脚本中有错误。
修复错误后,我终于可以将我的其他脚本附加到我的游戏对象上了。
我出现了同样的错误,但出于不同的原因(以防有人从 google 来到这里)。
我是初学者,我的文件在其中命名为 space。之后我得到了同样的错误。确保不要在您的 C# 脚本中包含 spaces。
我刚刚遇到了这个问题,我有一个完美的脚本,没有错误,并且名称与它应该的名称相同,但无论如何都不让我将它添加到游戏对象中。
还有另一个完全不相关的脚本,但它有一个错误,不知何故阻止我添加我好的新脚本。
就像已经在此处发布的一些人一样 - 问题可能出在不同的代码上。
我试图添加一个被另一个有错误的脚本引用的脚本 - 它没有告诉你这就是原因,尽管 visual studio 有点通过向你显示打开脚本中的错误来建议它。
只需删除较大的(错误的)脚本并开始从基本的添加到 unity 项目。
昨天我把unity从unity5更新到2018.2.2f1。更新 2018.2.2f1 后未加载 Unity 脚本。
一旦我尝试播放场景,脚本就没有加载,我无法再次添加脚本,它给出了这个错误:
Can't add script component 'CubeScript' because the script class cannot be found. Make sure that there are no compile errors and that the file name and class name match.
如果您还有项目的旧副本,请先将 Unity 项目升级到 Unity 2017,然后再升级到 2018.2.2f1。
以下是您可能会遇到此错误的几个可能原因(很可能是从以下位置订购的)
1。脚本名称与 class 名称不匹配。
如果脚本名称为MyClass
,class名称必须为MyClass
。这也是区分大小写的。仔细检查以确保这不是问题所在。为确保这不是问题所在,请复制 class 名称并将其粘贴为脚本名称以确保这不是问题所在。
请注意,如果您在一个脚本中有多个 class,则应与脚本名称匹配的 class 名称是派生自 [=12= 的 class ].
2。您的脚本有错误。由于这是一次升级,您可能会使用现在已弃用和删除的 API。用 Visual Studio 打开你的脚本,看看那里是否有错误,然后修复它。代码下通常有一条红线表示有错误。
3。使用 Unity 导入器及其自动升级脚本导入错误。
要尝试的事情:
A。首先要做的是重启Unity Editor。
B。右键单击项目选项卡,然后单击 "Reimport All"
C。如果还有问题,唯一剩下的就是删除有问题的脚本并创建一个新脚本。如果脚本附加到场景中的许多游戏对象,则有一种更简单的方法可以做到这一点。
A。打开脚本,将其内容复制到记事本中。
B。从编辑器和 项目 选项卡上右键单击脚本 "CubeScript"、select "Find References In Scene"。
C.Unity 现在将只显示附加了此脚本的所有游戏对象。删除旧脚本。创建一个新脚本,然后将记事本中的内容复制到这个新脚本中。现在,您只需将新脚本拖到场景中所有已过滤的游戏对象即可。对每个受影响的脚本执行此操作。这是一项手动工作,但完成后应该会解决您的问题。
除其他答案外还有一件事可能有帮助
- 使从 MonoBehaviour 继承的 class 成为文件中的第一个 class。它为我解决了这个问题。
出于历史目的在此发帖,如果来自 Google 的人最终出现在这里,我确实遇到了同样的问题(我在 Windows 10),这是我解决它的方法:
- 如果您单击控制台,您应该会看到一个空白错误。别担心,这是一个编辑器错误,您可以看到编辑器日志 by selecting the console's window dropdown and selecting Open Editor Log.
对我来说,问题是找不到 "Tools\Roslyn\csc",Unity 用来编译 C# 文件的东西。
- 我打开
C:\Program Files\Unity\Hub\Editor19.2.14f1\Editor\Data\Tools\RoslynScripts\unity_csc.bat
并在行"%APPLICATION_CONTENTS%\Tools\Roslyn\csc" /shared %*
中添加了“.exe”
(这一行现在应该是:"%APPLICATION_CONTENTS%\Tools\Roslyn\csc.exe" /shared %*
)
现在完美运行了。
检查控制台错误并修复它们是解决问题的好方法"Can't add script component because the script class cannot be found?",尽管错误似乎无关紧要。 当我修复其他脚本中的错误时,这对我有用。
对我来说,我发现这是一个我没有使用的脚本,它链接到我删除的播放器和其他脚本。
我对 Unity 和游戏开发完全陌生,但我发现通过输入不正确的名称使错误为真,然后输入正确的名称似乎可以“欺骗”Unity 以修复其错误。
这就是堆积如山的一些原因。
1
。您的脚本名称与您的 class 名称不同。
2
。可能是你的脚本有错误。
这里是解决问题的几种方法。
1
。将相同的脚本名称和 class 添加到此脚本中。
2
。发现有错误?并尝试解决它。
对我来说,问题是另一个脚本中有错误。
修复错误后,我终于可以将我的其他脚本附加到我的游戏对象上了。
我出现了同样的错误,但出于不同的原因(以防有人从 google 来到这里)。
我是初学者,我的文件在其中命名为 space。之后我得到了同样的错误。确保不要在您的 C# 脚本中包含 spaces。
我刚刚遇到了这个问题,我有一个完美的脚本,没有错误,并且名称与它应该的名称相同,但无论如何都不让我将它添加到游戏对象中。 还有另一个完全不相关的脚本,但它有一个错误,不知何故阻止我添加我好的新脚本。
就像已经在此处发布的一些人一样 - 问题可能出在不同的代码上。 我试图添加一个被另一个有错误的脚本引用的脚本 - 它没有告诉你这就是原因,尽管 visual studio 有点通过向你显示打开脚本中的错误来建议它。
只需删除较大的(错误的)脚本并开始从基本的添加到 unity 项目。