コード例 #1
0
 private void OnTriggerEnter(Collider other)
 {
     if (other.CompareTag("Enemy"))
     {
         hitEnemy = other.GetComponent <EnemyHitHandler>();
         if (additionalMotion)
         {
             Debug.Log(motionNumber);
             hitEnemy.ApplyMotionEffect(motionNumber, PlayerManager.instance.Player.transform);
             additionalMotion = false;
             motionNumber     = 0;
         }
         if (weap != null && weap.damageType != Weapon.WeaponDamageType.Normal)
         {
             hitEnemy.ApplyStatusEffect(weap.damageType);
         }
         hitEnemy.applyDamage(damage);
         AudioManager.instance.PlaySFX(hitSound);
     }
     else if (other.CompareTag("AttackableItem"))
     {
         other.GetComponent <AttackableItem>().dropItem();
         AudioManager.instance.PlaySFX(hitSound);
     }
 }
コード例 #2
0
 private void explode()
 {
     Collider[] enems            = Physics.OverlapSphere(trans.position, 3, mask);
     Collider[] destroyableWalls = Physics.OverlapSphere(trans.position, 3, wallMask);
     foreach (Collider enem in enems)
     {
         Vector3 dir = (enem.transform.position - trans.position).normalized;
         dir.y = 0;
         Enemy           enemScript        = enem.GetComponent <Enemy>();
         EnemyHitHandler enemDamageHandler = enem.GetComponent <EnemyHitHandler>();
         enemScript.applyForce(2, dir, .3f, true);
         enemDamageHandler.ApplyStatusEffect(Weapon.WeaponDamageType.Poison);
     }
     foreach (Collider wall in destroyableWalls)
     {
         wall.GetComponent <DestroyableWall>().takeDamage();
     }
     ObjectPooling.instance.addToPool("Grenade", thrownPrefab);
 }