void OnCollisionEnter(Collision col)
    {
        GameObject obj = col.gameObject;

        Debug.Log(obj.name + " " + obj.tag);
        if (obj.tag == "Destructible")
        {
            DestructableDoodadScript ds = obj.GetComponent <DestructableDoodadScript>();
            ds.Die();
        }
    }
Esempio n. 2
0
  /*void OnCollisionEnter(Collision collision) //Rigidbody collision
   * {	GameObject target;
   *      target = collision.gameObject;
   *      if (target != null)
   *      {	Debug.Log(target);
   *              if (destroy_on_impact)
   *              {	Destroy(gameObject);
   *              }
   *              else if (!piercing)
   *              {	bullet_vel = Vector3.zero;
   *              }
   *      }
   * }*/

  void OnTriggerEnter(Collider other)       //Trigger collision
  {
      GameObject target;

      target = other.gameObject;
      if (target != null && target.tag != "Floor")
      {
          Debug.Log(target.tag);
          if (target.tag == "Wall")
          {
              bullet_vel = Vector3.zero;
              if (destroy_on_impact)
              {
                  Destroy(gameObject);
              }
          }
          else if (target.tag == "Destructible")               //Doodads
          {
              DestructableDoodadScript ds = target.GetComponent <DestructableDoodadScript>();
              ds.TakeDamage(damage);
              CheckPierce();
          }
          else if (target.tag == "Enemy")
          {
              if (owner == null || owner.tag != "Enemy")
              {                         //TODO: Damage enemy and add score
                  CheckPierce();
              }
          }
          else if (target.tag == "Player")
          {
              if (owner == null || owner.tag != "Player")
              {
                  PlayerController pc = target.GetComponent <PlayerController>();
                  pc.TakeDamage(damage, owner);
                  CheckPierce();
              }
          }
          else if (target.tag == "Projectile")
          {
              BulletController target_ctrl = target.GetComponent <BulletController>();
              if (target_ctrl.take_damage && (owner == null || target_ctrl.owner == null || target_ctrl.owner.tag != owner.tag))                    //Avoid friendly fire
              {
                  target_ctrl.hitpoints -= damage;
                  if (target_ctrl.hitpoints <= 0.0f)
                  {
                      Destroy(target);
                  }
                  CheckPierce();
              }
          }
      }
  }