当我保存Unity C#代码时,它正在工作,但停止工作

当我保存Unity C#代码时,它正在工作,但停止工作,c#,unity3d,C#,Unity3d,我对我正在使用的代码做了一些调整,一切都很顺利,直到我保存了所有的脚本,它出现了很多我没有看到或不知道如何修复的错误,我对所有这些代码都是陌生的,我的游戏运行得很好,然后我保存了所有的脚本,所有的错误都爆发了。我这里有图片和代码 错误名称空间已经包含了的定义,这意味着没有名称空间下有两个同名的类 发生了什么; 当您在项目中移动脚本并且没有在代码编辑器中重新加载解决方案时,通常会发生这种情况。保存脚本时,代码编辑器仍然认为文件位于旧位置,并将其保存在那里。这可能就是你得到同一个脚本的两个副本的

我对我正在使用的代码做了一些调整,一切都很顺利,直到我保存了所有的脚本,它出现了很多我没有看到或不知道如何修复的错误,我对所有这些代码都是陌生的,我的游戏运行得很好,然后我保存了所有的脚本,所有的错误都爆发了。我这里有图片和代码


错误
名称空间已经包含了
的定义,这意味着没有名称空间下有两个同名的类

发生了什么; 当您在项目中移动脚本并且没有在代码编辑器中重新加载解决方案时,通常会发生这种情况。保存脚本时,代码编辑器仍然认为文件位于旧位置,并将其保存在那里。这可能就是你得到同一个脚本的两个副本的原因

纠正; 找到脚本的两个版本,并使用inspector代码预览快速决定要保留哪个版本。删除另一个,然后关闭代码编辑器。现在,您可以选择要将脚本移动到的位置。当您想要编辑它时,只需像平常一样打开代码编辑器

避免在将来;
将脚本移动到新位置时,请确保在代码编辑器中将其关闭(即关闭选项卡)。如果要编辑它,请再次打开它。这将确保代码编辑器知道脚本的正确路径,并且不会将其保存到其他地方

粘贴的代码不会显示它所属的类。您是否意外地将脚本/类文件保存在两个重复的文件中?我必须检查一下,谢谢
public float speed;

private Rigidbody2D rb;
private Vector2 moveVelocity;

void Start(){

    rb = GetComponent<Rigidbody2D>();

}

void Update(){

    Vector2 moveInput = new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"));
    moveVelocity = moveInput.normalized * speed;
}

void FixedUpdate(){

    rb.MovePosition(rb.position + moveVelocity * Time.fixedDeltaTime);

}
public Transform[] spawnPoints;
public GameObject[] monsters;
int randomSpawnPoint, randomMonster;
public static bool spawnAllowed;

// Use this for initialization
void Start () {
    spawnAllowed = true;
    InvokeRepeating ("SpawnAMonster", 0f, 1f);
}

void SpawnAMonster()
{
    if (spawnAllowed) {
        randomSpawnPoint = Random.Range (0, spawnPoints.Length);
        randomMonster = Random.Range (0, monsters.Length);
        Instantiate (monsters [randomMonster], spawnPoints [randomSpawnPoint].position,
            Quaternion.identity);
    }
}