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();
}
}
