【发布时间】:2016-05-26 00:33:06
【问题描述】:
我正在开发一个简单的僵尸生存游戏。 该脚本附加在一个空的 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次攻击)将显示一个Debug日志,并显示消息“Die!”
问题是当僵尸只攻击一次时(90的生命就会出现)立即显示“死!”。我做错了什么?
您好。
【问题讨论】:
-
这里有很多错别字,比如
attack var = 10;和health - = attack; -
是的,对不起。我不会说英语,那是翻译错误。我现在正在修复代码。
-
是否“受到攻击 2!”在“死”之前退出?即 Attack2() 是否在 Attack1() 之后立即被调用?
-
Attack1() 在哪里被调用?你确定只有一个地方在调用它并且只有一次吗?
-
您是否使用 onTriggerEnter() 来调用这些攻击方法?您的逻辑可能会给您带来这个问题。
标签: function unity3d unityscript