Как сделать что бы партиклы вызывались только один раз при касании с 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,5 длинны анимации партикл систем.