无法乘以并赋值为int

时间:2015-05-12 10:41:57

标签: unity3d unityscript

我正在关注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");

2 个答案:

答案 0 :(得分:1)

Input.GetButtonDown("Jump")会返回boolean - truefalse。您无法将数字乘以truefalse,因为不清楚结果应该是什么。

我认为您要将truefalse解释为10,以便当按钮关闭时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);