Exemple #1
0
        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());
        }
Exemple #2
0
 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;
     }
 }