我正在编写赛车游戏。 你可以破坏你的对手,我想计算你已经毁坏的敌人。 我是这样做的:
if(Wrecked){
Smoke.Emit();
EngineTorque = 0;
PlayerCar_Script.EnemyWrecked += 1;
}
我认为你可以看到我的问题。它不会只计数1,它将无数...... 我怎样才能解决这个问题 ?我也试过SendMessage,但它最终出现在同一个问题中:/
答案 0 :(得分:2)
它不会只计数1,它将数不尽
这听起来像是你重复运行上面的代码,但没有在每次运行之间将PlayerCar_Script.EnemyWrecked设置回0。我猜你在汽车的monobehavior.update()函数中有这个。相反,当你从未破坏变为破坏时,只增加EnemyWrecked。
为每辆残骸车使用一个变量,以确定它是否在您上一次检查时失事。
bool wasWreckedLastFrame = false;
然后将上面的代码段更改为:
if(Wrecked && wasWreckedLastFrame==false){
wasWreckedLastFrame = true;
Smoke.Emit();
EngineTorque = 0;
PlayerCar_Script.EnemyWrecked += 1;
}