我正在编写赛车游戏。你可以破坏你的对手,我想数一数你破坏的敌人。我这样做是这样的:
if(Wrecked){
Smoke.Emit();
EngineTorque = 0;
PlayerCar_Script.EnemyWrecked += 1;
}
我想你可以看到我的问题。它不会只计数 1,它会计数无穷无尽....我该如何解决这个问题?我也尝试过 SendMessage,但它最终出现在同一个问题中:/
我正在编写赛车游戏。你可以破坏你的对手,我想数一数你破坏的敌人。我这样做是这样的:
if(Wrecked){
Smoke.Emit();
EngineTorque = 0;
PlayerCar_Script.EnemyWrecked += 1;
}
我想你可以看到我的问题。它不会只计数 1,它会计数无穷无尽....我该如何解决这个问题?我也尝试过 SendMessage,但它最终出现在同一个问题中:/
它不会只计数 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;
}