Unity2D после смерти врага не появляются партиклы

Сделал партикл при попадании по врагу, все отлично работает. Но есть одна проблема, когда умирает enemy то на его месте нету партиклов, я уже столько всего перепробовал, но ничего не выходит.

введите сюда описание изображения

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Enemy : MonoBehaviour
{
    public int health;
    public float speed;

    public GameObject effect;

    private void Update() 
    {
        if (health <= 0)
        {
            // строчка ниже и создает партикл
            Instantiate(effect, transform.position, Quaternion.identity);
            Destroy(gameObject);
        }
        transform.Translate(Vector2.left * speed * Time.deltaTime);
    }

    public void TakeDamage(int damage)
    {
        health -= damage;
    }
}

Ответы (1 шт):

Автор решения: Methorn

Во первых проверку на смерть делай не в Update, а при получении урона

Во вторых вместо Instantiate закешируй ParticleSystem и запускай его через .Play(). Сделай одну систему частиц на сцене и в Start() ищи ее через GameObject.Find().GetComponent<ParticleSystem>() - по имени, или через GameObject.FindWithTag().GetComponent<ParticleSystem>() - по тегу

В третьих в инспекторе партикла поставь Simulation Space >> World и убери галочку с Looping

Вот мой пример:

using UnityEngine;

public class Drop : MonoBehaviour
{
    private ParticleSystem _particles = default;

    private void Awake()
    {
        _particles = GameObject.FindWithTag("DropParticles").GetComponent<ParticleSystem>();
    }

    private void Return()
    {
        _particles.transform.position = gameObject.transform.position;
        _particles.Play();
    }
}
→ Ссылка