我试图制作一个游戏,在那里你可以刺伤敌人,敌人挣扎大约一秒钟后就会死亡。 (布娃娃);如何在查找游戏对象之前添加延迟
我认为最好只显示我的剧本,你知道我的意思:
在触发器输入脚本:
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;
}
现在,当我的刀进入敌人的碰撞,敌人imediatly下降到地板上。 我试着把:
gameObject.Find("enemy" + currentEnemy).GetComponent("RagdollOrNot").MakeKinematicFalse();
在更新功能if(StopBleeding > 50)
。
如果我这样做,我会得到一个null reverance异常的错误,因为脚本cand找到了敌人。虽然它可以让我的触发器进入。
基本上我的问题是:有没有办法解决这个错误给它一个50帧的延迟(所有在StopBleeding
作品)?
或者有没有什么方法可以在Ragdoll启动前进行简单的延迟?
在此先感谢
请注意,这是C#语法。 Unity JS语法完全不需要使用Coroutines。查找Unity JS的“yield”关键字。 – scriptocalypse 2011-04-20 23:28:38