Ejemplo n.º 1
0
    private IEnumerator DoParticleBehaviour(ParticleSystem particle)
    {
        particle.transform.position = Random.insideUnitSphere * 5f;
        particle.Play();
        yield return(new WaitForSeconds(particle.main.duration));

        particle.Stop(true, ParticleSystemStopBehavior.StopEmitting);
        yield return(new WaitUntil(() => particle.particleCount == 0));

        _pool.Return(particle);
    }
Ejemplo n.º 2
0
    private IEnumerator Start()
    {
        List <PoolableParticle> particles = _pool.Request(10) as List <PoolableParticle>;

        foreach (PoolableParticle particle in particles)
        {
            particle.transform.position = Random.insideUnitSphere * 5f;
            particle.Play();
        }
        yield return(new WaitForSeconds(5f));

        _pool.Return(particles);
    }
Ejemplo n.º 3
0
    private IEnumerator Start()
    {
        _factory              = ScriptableObject.CreateInstance <ParticleFactorySO>();
        _factory.Prefab       = _prefab;
        _pool                 = ScriptableObject.CreateInstance <ParticlePoolSO>();
        _pool.name            = gameObject.name;
        _pool.Factory         = _factory;
        _pool.InitialPoolSize = _initialPoolSize;
        List <PoolableParticle> particles = _pool.Request(10) as List <PoolableParticle>;

        foreach (PoolableParticle particle in particles)
        {
            particle.transform.position = Random.insideUnitSphere * 5f;
            particle.Play();
        }
        yield return(new WaitForSecondsRealtime(5f));

        _pool.Return(particles);
    }