void Start() { attack = GetComponent <Attack>(); animator = GetComponent <BaseAnimator>(); positionSpawn = (Vector2)GetComponent <Transform>().position + new Vector2(SoftRadius, -SoftRadius); //заглушка для ИИ bar = GetComponent <CircularHPBar>(); InitHUD(); animator.UpdateCountText(); animator.CaptureAnimation(); StartCoroutine(FromPrototype()); UnitPrefabs = SideUnitPrefabs(); StartCoroutine(ProduceUnit()); }
private IEnumerator SpawnUnit(Transform target) { UnitTarget = target; SpawnCountUnit += CurrentCountUnit - SpawnCountUnit; if (SpawnCountUnit > 0) { isSpawn = true; positionSpawn = (ObjectTransform.position - UnitTarget.position).normalized * SoftRadius * -1 + ObjectTransform.position; while (SpawnCountUnit > 0 && side != Faction.Neutral) { SpawnCountUnit--; CurrentCountUnit--; maxHP -= UnitPrefabs.maxHP; currentHP -= UnitPrefabs.maxHP; bar.OnHPCahnged(currentHP); animator.UpdateCountText(); GameObject go = UnitPrefabs.gameObject.Spawn(positionSpawn); go.GetComponent <Unit>().MoveInBase(UnitTarget); yield return(new WaitForSeconds(spawnRate)); } isSpawn = false; } }