我正在关注Unity教程并在Unity汽车游戏教程中遇到此错误:
BCE0051:运算符'*'不能与'int'类型的左侧和'boolean'类型的右侧一起使用。
我在代码行
中发现了最后两个相同的错误// These variables allow the script to power the wheels of the car.
public var FrontLeftWheel: WheelCollider;
public var FrontRightWheel: WheelCollider;
public var RearLeftWheel: WheelCollider;
public var RearRightWheel: WheelCollider;
RearRightWheel.brakeTorque = 60 * Input.GetButtonDown("Jump");
RearLeftWheel.brakeTorque = 60 * Input.GetButtonDown("Jump");
答案 0 :(得分:1)
Input.GetButtonDown("Jump")
会返回boolean
- true
或false
。您无法将数字乘以true
或false
,因为不清楚结果应该是什么。
我认为您要将true
或false
解释为1
或0
,以便当按钮关闭时brakeTorque
为60且为0当它不是。
我不熟悉Unityscript,但在vanilla JavaScript中,您可以使用一元+
运算符将布尔值转换为数字:
RearRightWheel.brakeTorque = 60 * +Input.GetButtonDown("Jump");
如果这不起作用,您可以使用三元运算符:
RearRightWheel.brakeTorque = 60 * (Input.GetButtonDown("Jump") ? 1 : 0);
答案 1 :(得分:1)
@ General-Doomer建议更好:
RearRightWheel.brakeTorque = Input.GetButtonDown("Jump") ? 60 : 0;
三元运营商:
RearRightWheel.brakeTorque = 60 * (Input.GetButtonDown("Jump")?1:0);