Function 更新功能不支持';我不能正常工作

Function 更新功能不支持';我不能正常工作,function,unity3d,unityscript,Function,Unity3d,Unityscript,我正在开发一个简单的僵尸生存游戏。 此脚本附加在一个空的游戏对象中,作为玩家的健康状态 #pragma strict var健康=100; var攻击=10; var otherAttackDelay=5; 函数攻击1(){ 健康-=攻击; Debug.log(“受到攻击1!”); 产生WaitForSeconds(其他攻击延迟); 攻击2(); } 函数攻击2(){ 健康-=攻击; Debug.log(“受到攻击2!”); } 函数更新(){ 如果(健康==80){ Debug.log(“Di

我正在开发一个简单的僵尸生存游戏。 此脚本附加在一个空的游戏对象中,作为玩家的健康状态

#pragma strict
var健康=100;
var攻击=10;
var otherAttackDelay=5;
函数攻击1(){
健康-=攻击;
Debug.log(“受到攻击1!”);
产生WaitForSeconds(其他攻击延迟);
攻击2();
}
函数攻击2(){
健康-=攻击;
Debug.log(“受到攻击2!”);
}
函数更新(){
如果(健康==80){
Debug.log(“Die!”);
}
}
玩家的生命值为100,攻击僵尸的生命值为10。僵尸再次攻击前有5秒的延迟

在函数更新中,我写了一个条件,如果玩家的健康状况等于80(2次攻击),将显示一个调试日志,并显示消息“死亡!”

问题是,当僵尸只攻击一次(90%的生命会在那里)时,立即显示“死亡!”。我做错了什么


问候。

而不是在更新功能中不断检查运行状况。在Attack1或Attack2中,或者更好的情况下,您可以在最后检查运行状况。如果这不起作用,我还建议在更新或攻击函数中粘贴一个显示玩家健康状况的调试日志,这样你就可以确保健康状况不会达到你想要的80。另外,我注意到你正在检查一个确切的数量,这在检查诸如健康之类的事情时可能有点粗略。试着做一些类似if(health)的事情,这里有很多打字错误,比如
attack var=10;
health-=attack;
是的,对不起。我不会说英语,这是翻译错误。我正在修复代码。在“死亡”之前是否会注销“受攻击2!”?例如,攻击1()之后是否会立即调用Attack2()?在哪里调用Attack1()?您确定只有一个地方调用它并且只调用一次吗?您是否使用OnTiggerEnter()调用这些攻击方法?您的逻辑可能会导致此问题。