void OnCollision(OnPhysicsObjectCollide collisionInfo)
 {
     if (collisionInfo.Collided.tag == "Player")
     {
         if (collisionInfo.Collided.name != Shooter.name)
         {
             try
             {
                 _pool.Despawn(this);
             }
             catch (Exception e)
             {
                 print(e.ToString());
             }
         }
         else
         {
             if (this.bounceCount >= bulletInfo.MaxBounces)
             {
                 try
                 {
                     _pool.Despawn(this);
                 }
                 catch (Exception e)
                 {
                     print(e.ToString());
                 }
             }
             else
             {
                 bounceCount += 1;
             }
         }
     }
     else if (collisionInfo.Collider.tag == "Wall")
     {
         if (this.bounceCount >= bulletInfo.MaxBounces)
         {
             try
             {
                 _pool.Despawn(this);
             }
             catch (Exception e)
             {
                 print(e.ToString());
             }
         }
         else
         {
             bounceCount += 1;
         }
     }
 }
    void OnCollision(OnPhysicsObjectCollide collisionInfo) //Forma atual de fazer um "callback" para colisões
    {
        if (collisionInfo.Collider.tag == "Bullet" && collisionInfo.Collided.gameObject == this.gameObject)
        {
            Bullet bi = collisionInfo.Collider.GetComponent <Bullet>();

            if ((this.gameObject != bi.Shooter) || bi.bulletInfo.CanDamageShooter) // O dano só é aplicado caso este objeto não seja o atirador OU caso esta bala possa causar dano ao próprio atirador, como é com a KillerQueen
            {
                TakeDamage(bi.bulletInfo.Damage);
                customCollision.eventBus.Publish <OnDamageTaken>(new OnDamageTaken(CurrentHealth, gameObject.GetComponent <Player>()));
            }
        }
    }
Exemple #3
0
 /// <summary>
 /// Retornando o BasicPhysicsObject pois assim podemos retornar qualquer classe derivada dele
 /// (CircleCustomCollider e SquareCustomCollider) e tambem conseguimos acessar
 /// o GameObject em que o colisor esta anexado.
 /// </summary>
 public void OnCustomCollision(OnPhysicsObjectCollide collisionInfo)
 {
 }