更新功能无法正常工作

时间:2015-04-12 06:08:36

标签: function unity3d unityscript

我正在开发一个简单的僵尸生存游戏。 此脚本附加在空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;。我做错了什么?

问候。

1 个答案:

答案 0 :(得分:0)

而不是在Update功能中不断检查健康状况。无论是Attack1还是Attack2,或两者都更好,你可以检查最后的健康状况。如果这不起作用,我还建议在更新或攻击功能中粘贴显示玩家健康状况的调试日志,这样你就可以确保健康不会像你想要的那样进入80。此外,我注意到你正在检查一个确切的数量,这在检查像健康这样的事情时可能有点粗略。尝试做if(health< = 80)和(health == 80)之类的事情。这样,如果你决定继续检查更新功能中的健康状况,它就不会错过80岁的球员健康状况。

希望这有帮助!