/// <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> /// Sets visible defend flag. /// </summary> /// <param name="enabled">If set to <c>true</c> enabled.</param> public void SetVisible(bool enabled) { if (enabled == true) { if (myState == MyState.Inactive) { buildingPlace = GetComponentInParent <BuildingPlace>(); tower = buildingPlace.GetComponentInChildren <Tower>(); // Show defend flag activeDefendFlag = Instantiate(defendFlagPrefab); activeDefendFlag.transform.position = transform.position; myState = MyState.Active; } } else { if (myState == MyState.Active) { myState = MyState.Inactive; // Hide defense range tower.ShowRange(false); // Hide flag Destroy(activeDefendFlag); } } }
/// <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"); 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); } } }