Exemple #1
0
 // Start is called before the first frame update
 void Start()
 {
     if (_Instance == null)
     {
         _Instance = this.GetComponent <MonsterPoolManager>();
     }
     else
     {
         Destroy(this.gameObject);
     }
 }
    IEnumerator Hide()
    {
        boxCollider2D.enabled = false;
        followObject.Speed    = 0;

        Explosion.SetActive(true);
        Sprite.gameObject.SetActive(false);
        GameManager.instance.DestroyedMonster(this);

        yield return(new WaitForSeconds(1f));

        Explosion.SetActive(false);
        MonsterPoolManager.AddObject(this);
        gameObject.SetActive(false);
    }
Exemple #3
0
 IEnumerator GenerateNewMonsters()
 {
     while (true)
     {
         if (monstersOnScreen.Count <= maxCountMonstersOnScreen)
         {
             Vector3          newPosition = GetRandomPosiionOutsideCamera();
             MonsterBehaviour monster     = MonsterPoolManager.GetObject();
             if (monster != null)
             {
                 monster.transform.position = newPosition;
                 monster.gameObject.SetActive(true);
             }
             else
             {
                 MonsterBehaviour prefab = MonstersPrefabs[Random.Range(0, MonstersPrefabs.Count)];
                 monster = Instantiate(prefab, newPosition, new Quaternion(0, 0, 0, 0), this.transform);
             }
             monstersOnScreen.Add(monster);
         }
         yield return(new WaitForSeconds(Random.Range(MinDelayGeneration, MaxDelayGeneration)));
     }
 }