无法添加脚本组件,因为找不到脚本类?

时间:2018-08-06 18:18:11

标签: c# unity3d updates

昨天我将unity5的unity更新为2018.2.2f1。在Update 2018.2.2f1之后不会加载Unity脚本。

一旦我尝试播放场景,脚本将不会加载,并且我无法再次添加脚本,它将出现此错误:

  

由于脚本类无法添加脚本组件“ CubeScript”   找不到。确保没有编译错误,并且   文件名和类名匹配。

Error

7 个答案:

答案 0 :(得分:6)

如果您仍然有项目的旧副本,请先将Unity项目升级到 Unity 2017 ,然后再升级到 2018.2.2f1

以下是您可能会收到此错误的几种可能原因(很有可能是顺序原因)

1 。脚本名称与类名称不匹配。

如果脚本名称为MyClass,则类名称必须为MyClass。这也是区分大小写的。仔细检查以确保这不是问题。为确保不是问题,请复制类名称并将其粘贴为脚本名称,以确保这不是问题。

请注意,如果一个脚本中有多个类,则应与脚本名称匹配的类名是从MonoBehaviour派生的类。


2 。您的脚本中有错误。由于这是一次升级,因此您有可能正在使用现已弃用并删除的API。使用Visual Studio打开脚本,然后查看是否存在错误,然后对其进行修复。在代码下通常会有一个红线表示存在错误。


3 。使用Unity导入器及其自动升级脚本进行错误导入。

尝试的事情:

A 。首先要做的是重新启动Unity Editor。

B 。右键单击“项目”选项卡,然后单击“ “全部重新导入”

C 。如果仍然存在问题,唯一剩下的就是删除有问题的脚本并创建一个新脚本。如果脚本已附加到场景中的许多GameObject,则有一种更简单的方法。

A 。打开脚本,将其内容复制到记事本中。

B 。在编辑器中,在 Project 选项卡上,右键单击脚本“ CubeScript”,选择“在场景中查找引用”

C 。Unity现在仅显示所有已附加此脚本的GameObject。删除旧脚本。创建一个新的脚本,然后将内容从记事本复制到该新脚本。现在,您只需将新脚本拖到场景中所有已过滤的GameObject。对每个受影响的脚本执行此操作。这是一项手动工作,但完成后应该可以解决您的问题。

答案 1 :(得分:6)

出于历史目的将其发布在这里,如果Google的某人最终出现在这里,则我完全有同样的问题(我在Windows 10上),这是我如何解决的问题:

对我来说,问题是找不到“ Tools \ Roslyn \ csc”,这是Unity用来编译C#文件的东西。

  • 我打开了C:\Program Files\Unity\Hub\Editor\2019.2.14f1\Editor\Data\Tools\RoslynScripts\unity_csc.bat,并在行"%APPLICATION_CONTENTS%\Tools\Roslyn\csc" /shared %*中添加了“ .exe”

(此行现在应为:"%APPLICATION_CONTENTS%\Tools\Roslyn\csc.exe" /shared %*

现在它可以正常工作了。

答案 2 :(得分:1)

这就是为什么会堆积如山的一些原因。

1。你的脚本名和你的类名不一样。

2。可能是您的脚本中存在错误。

这是解决它的几种方法。

1。在此脚本中使用相同名称的脚本和类。

2。发现有错误?并尝试解决它。​​

答案 3 :(得分:0)

另一件事可能会与其他答案有所帮助

  • 使从MonoBehaviour继承的类成为文件中的第一个类。它为我解决了这个问题。

答案 4 :(得分:0)

检查控制台错误并修复它们是解决以下问题的好方法:“由于找不到脚本类,因此无法添加脚本组件?”,尽管该错误似乎无关紧要。 当我修复其他脚本中的错误时,这对我有用。

答案 5 :(得分:0)

对我来说,我发现这是一个我不使用的脚本,该脚本链接到播放器和其他已删除的脚本。

答案 6 :(得分:0)

我对Unity和游戏开发是完全陌生的,但是我发现通过输入不正确的名称然后输入正确的名称来使错误成真,似乎“欺骗”了Unity来修复其错误。