unity3d 运算符“*”不能应用于“Vector3”和“bool”类型的操作数

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

我试图使飞机螺旋桨旋转时,按下e,但我不能使用布尔变换。翻译
这里是我代码

public class SpinPropeller : MonoBehaviour
{
    public float speed = 300.0f;
    bool switchInput = false;

    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKey(KeyCode.E))
        {
            bool switchInput = true;
        }

        transform.Rotate(Vector3.forward * Time.deltaTime * speed * switchInput);
    }
}

我尝试了不同的操作员,但结果相同,我是新来的,所以这更难。

2g32fytz

2g32fytz1#

在此上下文中不需要“switchInput”变量。只需用途:

if (Input.GetKey(KeyCode.E)) {
    transform.Rotate(Vector3.forward * Time.deltaTime * speed);
}

如果你想打开/关闭螺旋桨旋转按下'E',然后重写你的代码使用GetKeyDown方法(而不是GetKey),像这样:

void Update() {
    if (Input.GetKeyDown(KeyCode.E)) {
        switchInput = !switchInput // '!' operator changes bool value to opposite
    }
    if (switchInput) {
        transform.Rotate(Vector3.forward * Time.deltaTime * speed);
    }
}

相关问题