unity3d 单位转换,平移(矢量3.forward);不起作用

1bqhqjot  于 2023-03-03  发布在  其他
关注(0)|答案(2)|浏览(209)

我是Unity的新手,我正在通过Unity的“用代码创建”教程学习。这里他们说,我可以使用

transform.Translate(Vector3.forward);

命令以Z坐标移动对象。但不起作用。
我的错误,如果你需要它:
“Vector 3”是“UnityEngine.Vector3”和“System.Numerics.Vector3”之间的不明确引用[程序集-CSharp]。

eqqqjvef

eqqqjvef1#

该错误是一个不明确的引用,这意味着类型Vector3存在于两个不同的命名空间中,即UnityEngineSystem.Numerics
有3种方法可以解决此问题:
1.显式使用UnityEngine.Vector3.forward所需的名称空间
1.创建别名以解决与using Vector3 = UnityEngine.Vector3的冲突。这将创建一个名为Vector3的别名,该别名将引用所需的类型。
1.如果可能,请删除冲突的命名空间。如果不使用System.Numerics命名空间,则只需将其删除即可。否则,请使用上述选项之一。

vmjh9lq9

vmjh9lq92#

我觉得你应该

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);
    }
}

相关问题