/// <summary> /// Start this instance. /// </summary> void Start() { anim = GetComponent <Animator>(); Debug.Assert(spawnPoint, "Wrong initial settings"); BuildingPlace buildingPlace = GetComponentInParent <BuildingPlace>(); defPoint = buildingPlace.GetComponentInChildren <DefendPoint>(); cooldownCounter = cooldown; // Upgrade all existing defenders on tower build Dictionary <GameObject, Transform> oldDefenders = new Dictionary <GameObject, Transform>(); foreach (KeyValuePair <GameObject, Transform> pair in defPoint.activeDefenders) { oldDefenders.Add(pair.Key, pair.Value); } defPoint.activeDefenders.Clear(); foreach (KeyValuePair <GameObject, Transform> pair in oldDefenders) { // Spawn new defender in the same place Spawn(pair.Key.transform, pair.Value); } // Destroy old defenders foreach (KeyValuePair <GameObject, Transform> pair in oldDefenders) { Destroy(pair.Key); } }
/// <summary> /// Awake this instance. /// </summary> void Awake() { cooldownCounter = cooldown; aiBehavior = GetComponent <AiBehavior>(); defPoint = transform.parent.GetComponentInChildren <DefendPoint>(); Debug.Assert(aiBehavior && spawnPoint && defPoint, "Wrong initial parameters"); }
/// <summary> /// Start this instance. /// </summary> void Start() { BuildingPlace buildingPlace = GetComponentInParent <BuildingPlace>(); defendPoint = buildingPlace.GetComponentInChildren <DefendPoint>(); tower = GetComponentInParent <Tower>(); Debug.Assert(defendPoint && tower, "Wrong initial settings"); }
// Start is called before the first frame update void Start() { BuildingPlace buildingPlace = GetComponentInParent <BuildingPlace>(); defendPoint = buildingPlace.GetComponentInChildren <DefendPoint>(); coolDownCounter = coolDown; //升级当前已生成的士兵 foreach (Transform point in defendPoint.GetDefendPoint()) { //如果防守点已经有士兵 AIBehavior soldier = point.GetComponentInChildren <AIBehavior>(); if (soldier != null) { //在相同的坐标上生成新的 Spawn(soldier.transform, point); //摧毁之前的士兵 Destroy(soldier.gameObject); } } }
/// <summary> /// Start this instance. /// </summary> void Start() { Debug.Assert(spawnPoint, "Wrong initial settings"); IPlacementArea placementArea = GetComponentInParent <IPlacementArea>(); defPoint = placementArea.transform.gameObject.GetComponentInChildren <DefendPoint>(); cooldownCounter = cooldown; // Upgrade all existing defenders on tower build foreach (Transform point in defPoint.GetDefendPoints()) { // If defend point already has defender Targetable defender = point.GetComponentInChildren <Targetable>(); if (defender != null) { // Spawn new defender in the same place Spawn(defender.transform, point); // Destroy old defender Destroy(defender.gameObject); } } }
/// <summary> /// Start this instance. /// </summary> void Start() { Debug.Assert(spawnPoint, "Wrong initial settings"); BuildingPlace buildingPlace = GetComponentInParent <BuildingPlace>(); defPoint = buildingPlace.GetComponentInChildren <DefendPoint>(); cooldownCounter = cooldown; // Upgrade all existing defenders on tower build foreach (Transform point in defPoint.GetDefendPoints()) { // If defend point already has defender AiBehavior defender = point.GetComponentInChildren <AiBehavior>(); if (defender != null) { // Spawn new defender in the same place Spawn(defender.transform, point); // Destroy old defender Destroy(defender.gameObject); } } }