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); } }
private void OnCollisionStay2D(Collision2D collision) { if (!Enabled || (!HighPriority && ImpactManagerInstance.HasReachedPhysicsInteractionsLimit())) { return; } ImpactManagerInstance.IncrementPhysicsInteractionsLimit(); ImpactCollisionWrapper c = new ImpactCollisionWrapper(collision); processCollision(c); }
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); }