void OnCollisionEnter2D(Collision2D collision) { GameObject other = collision.gameObject; Person person = other.GetComponent <Person>(); if (person) { playerData.AddPerson(); person.Remove(); SoundManager.Play(pickupSound); return; } // Moving fast enough if (body.velocity.sqrMagnitude > 3000) { SoundManager.Play(thudSound); Instantiate(collisionPrefab, collision.GetContact(0).point, Quaternion.identity, transform.parent); SpriteSquish spriteSquish = other.GetComponent <SpriteSquish>(); if (spriteSquish) { spriteSquish.SquishThin(); } Car car = other.GetComponent <Car>(); if (car && car.IsMoving()) { other.GetComponentInChildren <Flammable>().SetOnFire(); } } }
void OnCollisionEnter2D(Collision2D collision) { if (IsMoving() && body.velocity.sqrMagnitude > CRASH_SPEED_THRESHOLD) { SpriteSquish spriteSquish = collision.gameObject.GetComponent <SpriteSquish>(); if (spriteSquish) { spriteSquish.SquishThin(); } Flammable flammable = collision.gameObject.GetComponentInChildren <Flammable>(); if (flammable) { this.flammable.SetOnFire(); flammable.SetOnFire(); } Mortal mortal = collision.gameObject.GetComponent <Mortal>(); if (mortal) { mortal.Damage(gameObject.tag, CAR_CRASH_DAMAGE); } } }