Beispiel #1
0
    void OnParticleTrigger()
    {
        int enterCount = ParticlePhysicsExtensions.GetTriggerParticles(ps, ParticleSystemTriggerEventType.Enter, enter);
        int exitCount  = ParticlePhysicsExtensions.GetTriggerParticles(ps, ParticleSystemTriggerEventType.Exit, exit);

        Debug.Log("Trigger,Enter:" + enterCount + ",Exit:" + exitCount);
        Debug.Log("EnterList:" + enter.Count + ",ExitList:" + exit.Count);

        for (int i = 0; i < enter.Count; i++)
        {
            ParticleSystem.Particle p = enter[i];
            p.startColor = Color.green;
            enter[i]     = p;
        }

        for (int i = 0; i < exit.Count; i++)
        {
            ParticleSystem.Particle p = exit[i];
            p.startColor = Color.red;
            exit[i]      = p;
        }

        ParticlePhysicsExtensions.SetTriggerParticles(ps, ParticleSystemTriggerEventType.Enter, enter);
        ParticlePhysicsExtensions.SetTriggerParticles(ps, ParticleSystemTriggerEventType.Exit, exit);
    }
Beispiel #2
0
        private void OnParticleTrigger()
        {
            //IL_001e: Unknown result type (might be due to invalid IL or missing references)
            //IL_0023: Unknown result type (might be due to invalid IL or missing references)
            //IL_0026: Unknown result type (might be due to invalid IL or missing references)
            //IL_002b: Unknown result type (might be due to invalid IL or missing references)
            //IL_0047: Unknown result type (might be due to invalid IL or missing references)
            int triggerParticles = ParticlePhysicsExtensions.GetTriggerParticles(m_particleSystemListener, 2, particles);

            for (int i = 0; i < triggerParticles; i++)
            {
                Particle val      = particles[i];
                Vector3  position = val.get_position();
                for (int j = 0; j < pSystemsCount; j++)
                {
                    ParticleSystemEmit particleSystemEmit = m_particleSystemEmits[j];
                    particleSystemEmit.trsf.set_position(position);
                    particleSystemEmit.pSystem.Emit(particleSystemEmit.emitCount);
                }
            }
        }
Beispiel #3
0
    public void OnParticleTrigger()
    {
        if (ps == null)
        {
            ps = GetComponent <ParticleSystem>();
        }

        //int numEnter = ps.GetTriggerParticles(ParticleSystemTriggerEventType.Enter, enter);
        ParticlePhysicsExtensions.GetTriggerParticles(ps, ParticleSystemTriggerEventType.Enter, enter);

        //for(int i = 0; i < numEnter; i++){
        //	enter[i].
        //	Debug.Log("ParticleTrigger " + particleTriggers++ + " at " + enter[i].position);
        //	GameObject pEx = Instantiate(particleExplosion, enter[i].position, Quaternion.identity);
        //	pEx.GetComponent<particleExplosionScript>().setTriggerObject(player.gameObject);
        //}

        foreach (ParticleSystem.Particle p in enter)
        {
            Debug.Log("ParticleTrigger " + particleTriggers++ + " at " + p.position + " with StartLifeTime of " + p.startLifetime + " ID " + p.GetHashCode());
            GameObject pEx = Instantiate(particleExplosionPrefab, p.position, Quaternion.identity);
            pEx.GetComponent <particleExplosionScript>().setTriggerObject(player.gameObject);
        }
    }