我正在尝试制作一个游戏,您可以在其中刺伤敌人,敌人挣扎大约一秒钟并死亡。(布娃娃);
我认为最好只展示我的脚本,你知道我的意思:
在触发输入脚本中:
if(other.tag == "enemy"){
other.transform.parent.gameObject.name = ("enemy" + currentEnemy);
print(other.name);
gameObject.Find("enemy" + currentEnemy).GetComponent("RagdollOrNot").MakeKinematicFalse();
BloodParticle.emit = true;
Stabbed = true;
Character.GetComponent("MouseLook").enabled = false;
Character.GetComponent("CharacterMotor").enabled = false;
}
并在更新功能中:
if(Stabbed == true){
StopBleeding ++;
}
if(StopBleeding > 50){
Stabbed = false;
StopBleeding = 0;
currentEnemy ++;
Character.GetComponent("MouseLook").enabled = true;
Character.GetComponent("CharacterMotor").enabled = true;
BloodParticle.emit = false;
}
现在,当我的刀进入敌人的碰撞中时,敌人立即倒在地上。我试着把:
gameObject.Find("enemy" + currentEnemy).GetComponent("RagdollOrNot").MakeKinematicFalse();
在更新函数中if(StopBleeding > 50)
。
如果我这样做,我会收到 Null reverance 异常的错误,因为脚本可以找到敌人。虽然它可以在触发器中输入。
基本上我的问题是:有没有办法解决这个错误,让它延迟 50 帧(其余的都在StopBleeding
工作中)?
或者有什么办法可以在布娃娃被激活之前简单地延迟一下?
提前致谢