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>(); }
private void Start() { uComponent = transform.parent.GetComponent <UnitComponent>(); attackingU = uComponent.GetComponent <AttackingUnitI>(); }