我正在开发一个简单的僵尸生存游戏。 此脚本附加在空GameObject中,该GameObject充当玩家的健康状态。
#pragma strict
var health = 100;
var attack = 10;
var otherAttackDelay = 5;
function Attack1 () {
health -= attack;
Debug.log ("Under Attack 1!");
yield WaitForSeconds (otherAttackDelay);
Attack2 ();
}
function Attack2 () {
health -= attack;
Debug.log ("Under Attack 2!");
}
function Update () {
if (health == 80) {
Debug.log ("Die!");
}
}
玩家有100个生命值,攻击僵尸是10.僵尸攻击再次有5秒延迟。
在函数Update中我编写了一个条件,如果玩家的生命值等于80(2次攻击)将显示一条调试日志,并显示消息" Die!"
问题在于,当僵尸只攻击一次(那里会有90次生命)时,会立即显示“死亡!”#34;。我做错了什么?
问候。
答案 0 :(得分:0)
而不是在Update功能中不断检查健康状况。无论是Attack1还是Attack2,或两者都更好,你可以检查最后的健康状况。如果这不起作用,我还建议在更新或攻击功能中粘贴显示玩家健康状况的调试日志,这样你就可以确保健康不会像你想要的那样进入80。此外,我注意到你正在检查一个确切的数量,这在检查像健康这样的事情时可能有点粗略。尝试做if(health< = 80)和(health == 80)之类的事情。这样,如果你决定继续检查更新功能中的健康状况,它就不会错过80岁的球员健康状况。
希望这有帮助!