所以我是Unity的新手,我一直在尝试用附加到角色的脚本来测试场景。但是,它总是说“无法加载关联的脚本。请更正所有编译错误并分配有效的脚本。”它还说文件的名称可能与代码中的名称不同,但不是,并且还说代码可能缺少MonoBehaviour脚本。它甚至不允许我将脚本附加到字符上,因为它找不到脚本类。
我已经从互联网上复制并下载了角色移动代码,但是它们也不起作用。我也尝试过删除并重新制作CS文件,但这也没有用。除非我从“添加组件”中添加字符,否则即使向字符添加空脚本也行不通
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Movement : MonoBehaviour
{
SpriteRenderer sprite;
Rigidbody2D rigid;
// Start is called before the first frame update
void Start()
{
sprite = GetComponent<SpriteRenderer>();
rigid = GetComponent<Rigidbody2D>();
}
private void FixedUpdate()
{
if (Input.GetKey("d"))
rigid.velocity = new Vector2(2, 0);
else if (Input.GetKey("a"))
rigid.velocity = new Vector2(-2, 0);
}
}
如果有帮助,Unity中也会出现这些错误
答案 0 :(得分:1)
我认为您的班级名称与文件名不同。
答案 1 :(得分:0)
Unity显然无法在编辑器的目录名称中处理撇号(单引号'
)。您需要除去目录名称中的撇号。进行更改后,Unity应该能够按预期构建脚本。
答案 2 :(得分:-1)
这基本上是因为您删除了一些脚本或对其进行了重命名或降级了统一版本。您可能必须在所需的位置/组件处重新分配脚本。
注意:请确保类名与统一的脚本名相同。
答案 3 :(得分:-1)
首先,如果要将脚本附加到GameObject,建议使用“添加组件”创建脚本,因为脚本会自动导入必要的库。要向游戏对象添加脚本,必须实现MonoBehaviour。
第二,FixedUpdate()不应设置为private,它不需要访问修饰符,就像Start()一样,请参见https://docs.unity3d.com/ScriptReference/MonoBehaviour.FixedUpdate.html。
第三,第一个屏幕截图中的错误似乎表明Unity安装存在问题。尝试重新安装它,并确保您安装的编辑器与您的操作系统(64位或32位?)匹配。
第四,当您使用任何过时的库或类时,将显示第二个屏幕截图,在您共享的脚本中似乎并非如此。
希望有帮助。