Пример #1
0
    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();
            }
        }
    }
Пример #2
0
Файл: Car.cs Проект: xiabob/ld46
 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);
         }
     }
 }