IEnumerator InstantiateMissilesOverTime()
    {
        var attackers = GameObject.FindObjectsOfType <GameObject>();

        for (int i = 0; i < attackers.Length; i++)
        {
            if (attackers[i] == null)
            {
                continue;
            }
            AttackingUnitI attacker = attackers[i].GetComponent <AttackingUnitI>();
            if (attacker == null)
            {
                continue;
            }
            for (int j = 0; j < 30; j++)
            {
                if (!activeLevel == null)
                {
                    break;
                }
                Missile missile = GameObject.Instantiate(attacker.Missile).GetComponent <Missile>();
                missile.OnInit();
                missile.tr.SetParent(activeLevel.transform);
                InitMissile(attackers[i], missile.GetComponent <Missile>());
                yield return(new WaitForEndOfFrame());
            }
        }
    }
 public virtual Missile InitMissile(Vector3 position, int[] layers, string[] tags, AttackingUnitI owner)
 {
     isActive           = true;
     dieTimer           = 2.5f;
     transform.position = position;
     dDealer            = GetComponentInChildren <DamageDealer>();
     foreach (var layer in layers)
     {
         dDealer.AddTargetLayer(layer);
     }
     foreach (var tag in tags)
     {
         dDealer.AddTargetTag(tag);
     }
     this.owner = owner;
     dDealer.SetDamage(1);
     dDealer.enabled = false;
     return(this);
 }
 // Use this for initialization
 void Start()
 {
     ac = transform.parent.GetComponent <AttackingUnitI>();
 }
示例#4
0
 private void Start()
 {
     uComponent = transform.parent.GetComponent <UnitComponent>();
     attackingU = uComponent.GetComponent <AttackingUnitI>();
 }