我是 Unity 的新手,我正在通过 Unity 的“Create With Code”教程学习。他们在这里说,我可以使用 transform.Translate(Vector3.forward);通过 Z 坐标移动对象的命令。但它不起作用。我的错误,如果你需要它: 'Vector3' 是 'UnityEngine.Vector3' 和 'System.Numerics.Vector3' [Assembly-CSharp] 之间的模糊引用,你好,我是 unity 的新手,我正在学习“使用代码创建” “ 教程。他们在这里说,要移动对象,我可以使用 transform.Translate(Vector3.forward);。但它不起作用。这是我的错误:“Vector3”是“UnityEngine.Vector3”和“System.Numerics.Vector3”之间的模糊引用 [Assembly-CSharp]
错误是一个不明确的引用,这意味着类型
Vector3
存在于2个不同的命名空间中,即UnityEngine
和System.Numerics
。
有3种方法可以解决这个问题:
UnityEngine.Vector3.forward
using Vector3 = UnityEngine.Vector3
的冲突。这将创建一个名为 Vector3
的别名,它将引用您想要的类型。System.Numerics
命名空间,你可以简单地删除它。否则,请使用上述选项之一。我认为你需要做
public float speed = 10f;
private void Update() {
transform.Translate(transform.forward * speed * Time.deltaTime);
}
或者如果你想添加一个按键输入,你可以这样做
public float speed = 10f;
private void Update() {
if(Input.GetKey(KeyCode.YourKey) { // Input.GetKey(KeyCode.W) for example and '//' means comment so this won't be included in your code
transform.Translate(transform.forward * speed * Time.deltaTime);
}
}
两个版本都有效,感谢这两个版本,我很感激。