计算Unity3D中死去的敌人

时间:2013-05-15 15:01:39

标签: unity3d

我正在编写赛车游戏。 你可以破坏你的对手,我想计算你已经毁坏的敌人。 我是这样做的:

if(Wrecked){
    Smoke.Emit();
    EngineTorque = 0;
    PlayerCar_Script.EnemyWrecked += 1;
}

我认为你可以看到我的问题。它不会只计数1,它将无数...... 我怎样才能解决这个问题 ?我也试过SendMessage,但它最终出现在同一个问题中:/

1 个答案:

答案 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;
}