У меня есть игра с игроком и противником.
У меня также есть система частиц для случая, когда игрок умирает, как взрыв.Я сделал эту систему частиц заранее готовой, чтобы я мог использовать ее несколько раз за уровень, так как кто-то может много умереть.
Итак, в моем скрипте врага.cs, прикрепленном к моему врагу, у меня есть:
public GameObject deathParticle;
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.name == "Player" && !player.dead){
player.dead = true;
Instantiate(deathParticle, player.transform.position, player.transform.rotation);
player.animator.SetTrigger("Death");
}
}
Так что это играет мою систему частиц, когда игрок убит врагом.Теперь на моем сценарии игрока, у меня есть это.Эта специфическая функция запускается после анимации смерти:
public void RespawnPlayer()
{
Rigidbody2D playerBody = GetComponent<Rigidbody2D>();
playerBody.transform.position = spawnLocation.transform.position;
dead = false;
animator.Play("Idle");
Enemy enemy = FindObjectOfType<Enemy>();
Destroy(enemy.deathParticle);
}
Это вызывает нового игрока, как обычно, но в моем проекте каждый раз, когда я умираю, у меня есть объект смерти (клон), который я не хочу.Последние 2 строки предназначены для удаления этого, но это не так.
Я также пробовал это, но это не сработало:
Enemy enemy = FindObjectOfType<Enemy>();
ParticleSystem deathParticles = enemy.GetComponent<ParticleSystem>();
Destroy(deathParticles);