Beispiel #1
0
 protected override void OnTriggerStay2D(Collider2D collision)
 {
     if (collision.tag.Equals("Terrain"))
     {
         if (collision.gameObject.layer.Equals(LayerMask.NameToLayer("Wall")))
         {
             OnHitEvent.RemoveAllListeners();
             OnHitHeal.RemoveAllListeners();
             Destroy(gameObject);
         }
     }
     else
     {
         UnitController u = collision.transform.root.GetComponent <UnitController>();
         if (u.unitType != unitType && canDetect)
         {
             if (!ForwardHitList.Contains(u.gameObject) && !returning)
             {
                 onHit(u.gameObject);
             }
             else if (!ReturnHitList.Contains(u.gameObject) && returning)
             {
                 onHit(u.gameObject);
             }
             if (!StationaryHitList.Contains(u.gameObject) && stationary)
             {
                 StationaryHitList.Add(u.gameObject);
                 u.GetComponent <UnitStats>().TakeDamage(StationaryDamage);
             }
             OnHitHeal.RemoveAllListeners(); // heal can only trigger once per projectile
         }
     }
 }