private void OnParticleCollision(GameObject other)
        {
            if (!Enabled || (!HighPriority && ImpactManagerInstance.HasReachedPhysicsInteractionsLimit()))
            {
                return;
            }

            ImpactManagerInstance.IncrementPhysicsInteractionsLimit();

            bool isParticleSystem   = _particles != null;
            int  numCollisionEvents = 0;

            //If this is a particle system, get the collision events from out particles
            if (isParticleSystem)
            {
                numCollisionEvents = _particles.GetCollisionEvents(other, collisionEvents);
            }
            //This is a non-particle system object, get collision events from the other object
            else
            {
                ParticleSystem p = other.GetComponent <ParticleSystem>();
                numCollisionEvents = p.GetCollisionEvents(this.gameObject, collisionEvents);
            }

            //Process collision for each particle collision event
            for (int i = 0; i < numCollisionEvents; i++)
            {
                processParticleCollision(collisionEvents[i], other, isParticleSystem);
            }
        }
Exemplo n.º 2
0
        private void OnCollisionStay2D(Collision2D collision)
        {
            if (!Enabled || (!HighPriority && ImpactManagerInstance.HasReachedPhysicsInteractionsLimit()))
            {
                return;
            }

            ImpactManagerInstance.IncrementPhysicsInteractionsLimit();

            ImpactCollisionWrapper c = new ImpactCollisionWrapper(collision);

            processCollision(c);
        }
Exemplo n.º 3
0
        private void OnCollisionEnter2D()
        {
            if (!Enabled || (!HighPriority && ImpactManagerInstance.HasReachedPhysicsInteractionsLimit()))
            {
                return;
            }

            ImpactManagerInstance.IncrementPhysicsInteractionsLimit();

            InteractionData c = new InteractionData()
            {
                InteractionType = InteractionData.InteractionTypeSimple,
                Point           = transform.position
            };

            ImpactManagerInstance.ProcessInteraction(c, MainTarget);
        }