コード例 #1
0
    private void ConfigureParticleSystem(ParticleSystem ps, ParticlesConfig config)
    {
        if (ps != null && config != null)
        {
            var main     = ps.main;
            var emission = ps.emission;
            var renderer = ps.GetComponent <ParticleSystemRenderer>();

            main.startColor = config.color;

            main.startLifetime   = emissionConfig.startLifetime;
            main.simulationSpace = emissionConfig.simulationSpace;
            main.startSize       = emissionConfig.startSize;
            main.startSpeed      = emissionConfig.startSpeed;
            main.gravityModifier = emissionConfig.gravityModifier;

            emission.rateOverTime = emissionConfig.emissionRate;

            renderer.sortingLayerID = config.sortingLayer;
            renderer.sortingOrder   = config.orderInLayer;
            renderer.material       = config.renderMaterial;

            if (ps.randomSeed != randomSeed)
            {
                if (ps.isPlaying)
                {
                    ps.Stop();
                    ps.randomSeed = randomSeed;
                    ps.Play();
                }
                else
                {
                    ps.randomSeed = randomSeed;
                }
            }
        }
    }
コード例 #2
0
    //Instantiate a Prefab which it has a ParticleConfig and activates it.
    private void CreateParticles(ParticlesConfig pc)
    {
        ParticleSystem go = Instantiate <ParticleSystem>(pc.particleSystem, Camera.main.transform);

        go.gameObject.SetActive(true);
    }