Я пытаюсь сделать игру, в которой вы можете нанести удар врагу, противник борется около секунды и падает замертво.(ragdoll);
я думаю, что лучше всего показать мой скрипт, и вы поймете, что я имею в виду:
В триггере при включении введите скрипт:
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)
.
, если я это сделаю, я получу ошибку исключения нулевого благоговения из-за того, что скрипт найдет врага.Пока он может я его в триггер вводить.
В основном мой вопрос таков: есть ли способ исправить эту ошибку, чтобы дать ей 50 кадровую задержку (все остальное в StopBleeding
работает)?
Или есть ли способ, которым я могуположить простую задержку до того, как Ragdoll активируется?
Заранее спасибо