【问题标题】:Make sure that there are no compile errors and that the file name and class name match确保没有编译错误并且文件名和类名匹配
【发布时间】:2020-07-23 10:50:03
【问题描述】:

无论我做什么,我都会一遍又一遍地收到相同的错误。

"无法添加脚本组件'PlayerMove',因为脚本类 找不到。确保没有编译错误,并且 文件名和类名匹配”。

很抱歉,这很长,但这是我为解决此问题所做的努力的程度,所以请耐心等待。 我已经在这个 2D 项目上工作了三周。直到 3 天前它工作正常。到目前为止,我只创建了环境并添加了无所事事的角色。有音乐和效果。所有这些(仍然)工作正常。

然后我添加了一个脚本来让我的角色移动。这是脚本:

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class PlayerMove : MonoBehaviour {
        
    public float moveSpeed;
        
    public Rigidbody rb;
    // Start is called before the first frame update
    void Start()
    {
         rb = GetComponent<Rigidbody>();
    }
        
    // Update is called once per frame
    void Update()
    {
         rb.velocity = new Vector3(Input.GetAxis("Horizontal") * moveSpeed, rb.velocity.y, rb.velocity.z);
     } 
    }

我很高兴,我的角色在动!没有错误!一切都很好。添加脚本后,它又这样工作了两天。我这样说是为了强调 Unity 并没有因为脚本而崩溃。

Unity 崩溃了,这发生在星期一。即使我没有丢失我的项目文件,并且重新启动 Unity 也不起作用,我不得不卸载并重新安装 Unity。 我之前和之后的版本都是 2019.4.1f1,一直在使用相同的版本,因为我不想被升级问题卡住。

当我重新安装 Unity 并重新打开我的项目时,不幸的是,Cinemachine 和 ProBuilder 都不见了。这是我从一开始就面临的另一个问题。不过那应该是另一个话题了。

第 1 部分 经过大量的工作,我放弃了,决定创建一个新项目。以下是我采取的步骤:

  1. 我创建了一个新项目
  2. 已安装 CM、PB,
  3. 导入我的项目。
  4. 脚本不工作,所以我重新导入了它。

第 2 部分 还是不行,所以我创建了一个新的脚本——用不同的名字——通过在 Assets 中右击并创建一个脚本的方法。

然后我只是复制了我的三行代码 - 正如您在上面看到的那样 - 并尝试将其添加到我的角色中。还是不加。它想知道类名和文件名是否相同——它们当然是相同的——无论我创建了多少文件,无论采用何种方法,我都会确保类名和文件名相同。并且该类确实继承自 Monobehavior。请参考开始时的错误信息。

第 3 部分 然后我创建了另一个脚本文件。我删除了之前的脚本,确保没有其他具有相似名称的脚本,然后进入播放器并从检查器的“添加组件”菜单中创建了一个文件。我从那里双击该文件并然后添加代码。在我将它保存在 VS 2019 中之后,它在 Unity 的 Inspector 中是一个无效文件。

我已经尝试通过几个文件名更改来做到这一点。我试图从另一个文件夹导入脚本文件。我一遍又一遍地遇到同样的错误。刚才我也完成了重新导入所有进程。我什至卸载了 VS 2017,并安装了所有最新的 .Net SDK 框架。

我会感谢任何可以提供帮助的人。 一周前,我还在 Unity 论坛上添加了这个问题(我收到了同样的错误消息),并成功解决了它,但现在该解决方案不起作用。

请记住,我绝对没有创建任何其他脚本。我的项目中存在的唯一脚本是已经附加到资产的脚本,并且我的项目中没有资产需要输入移动,或者可以称为“玩家角色”游戏对象。

哦,我还尝试将我的 Player 资源的 Prefab 从主文件夹重新拖动(?)到场景视图。我什至刚刚重新导入了整个东西 - 全部重新导入。

【问题讨论】:

  • 欢迎来到 Stack Overflow。请拨打tour。这个地方是针对特定的编程问题。也请使用相关标签,例如统一阅读how to ask,一个On Topic question,然后看看Question Check list,这个perfect question
  • 你好@Wajeeha,请理解,没有会通读整面文字墙...请编辑您的帖子以显示问题的症结(以及您尝试解决的步骤)它)并删除所有其他不必要的细节。
  • 对我来说读起来真的很不错,但这里不适合写故事@Wajeeha。正如其他用户评论的那样,您应该看看在这里您可以期待哪些问题受到欢迎。关于您的问题的说明:您的故事中似乎存在几个问题,但如果 Unity 崩溃,请尝试删除项目中的 Library 文件夹以强制完全重新导入。包管理器可能有点混乱,但归结为项目包文件夹中的 manifest.js 文件。从旧项目中复制那个。
  • 看这就是重点。这里没有不必要的细节。我只解释了我面临的任何问题以及我为解决它而采取的所有步骤。我目前仍在继续,但仍然没有解决方案。我厌倦了这个,我可以死了!我会尝试将所有内容都编号,然后阅读起来可能会更好。

标签: unity3d components


【解决方案1】:

我一直试图一遍又一遍地缩短问题,但我为解决这个问题所采取的步骤太多,以至于我无法管理它。 然而,好消息是我终于解决了这个问题。 在所有可以预料的事情中,这是有效的:我从我的资产中删除了所有“SmoothMoves”文件夹。我不知道为什么这有帮助,我不知道其中的联系。 请阅读我在 Unity Answers 上发布的这个问题 - 任何有类似问题的人 - 以证明我不知道 SmoothMoves 文件和文件夹对我的项目有什么影响,我不知道删除它会有什么影响。 (是的,我知道我的一些角色资产(敌人)使用 SmoothMoves,但我仍然不确定我删除的那些文件夹中有什么)。 但是我的主要玩家角色现在都在移动。我的脚本文件一眨眼就添加到了游戏对象中。 https://answers.unity.com/questions/1753426/smoothmoves-dll-file-problem-can-anyone-please-hel.html 所以这个问题,请确保类名和文件名相同,一个奇怪的问题,可能来自 SmoothMoves 文件夹(我仍然有项目中的所有角色预制件,我只删除了特定的 SM 文件夹) .小心。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-20
    • 2013-08-21
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 2023-01-05
    • 1970-01-01
    相关资源
    最近更新 更多