我有一个玩家和一个敌人的游戏。
当玩家死亡时,我也有一个粒子系统,比如爆炸。我已经把这个粒子系统做成了一个预制件,所以我可以在每个级别多次使用它,因为有人可能会死很多。
所以在我的敌人.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);
}
这会像往常一样重生玩家,但是在我每次死的项目中,我都会有一个我不想要的死亡(克隆)对象。最后两行是为了删除它,但它没有。
我也试过这个没有用:
Enemy enemy = FindObjectOfType<Enemy>();
ParticleSystem deathParticles = enemy.GetComponent<ParticleSystem>();
Destroy(deathParticles);
哈士奇WWW
相关分类