Как сделать что бы партиклы вызывались только один раз при касании с Ground?

Пробовал сам сделать, но получилось только что он всегда выпускает. На самом партикле убрана галочка Play On Awake*

using UnityEngine;

public class PlayerControl : MonoBehaviour
{
    private bool is_ground = false;

    public ParticleSystem JumpEffect;
    public Transform groundCheck;
    public float CheckRadius;
    public LayerMask WhatIsGround;

    private void Update() 
    {
        if (Input.GetKeyDown(KeyCode.Space) && is_ground)
        {
            JumpPartPlay();
        }
    }

    private void FixedUpdate() 
    {
        is_ground = Physics2D.OverlapCircle(groundCheck.position, CheckRadius, WhatIsGround);

        JumpPartStop();
    }

    void JumpPartPlay()
    {
        JumpEffect.Play();
    }

    void JumpPartStop()
    {
        JumpEffect.Stop();
    }
}


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

Автор решения: Andrew
  1. нужно убрать повторяемость у партикл систем (проигрывать только 1 раз)
  2. нужно убить инстанс партиклов после использования (не нужно мусорить в оперативке обьектами которые больше не используются) - для этого напиши скрипт дестроя который вызывается через 1,5 длинны анимации партикл систем.
→ Ссылка