본문 바로가기
Unity

Spawning Pool

by hallojih 2022. 2. 20.

몬스터를 죽이고 despawn 시킨 후, 일정 시간이 지나면 몬스터를 재리스폰하도록 하도록 해야한다.

이 몬스터의 리스폰을 관리.

이를 Spawning Pool, 혹은 Monster generator라고 부른다. 용어는 딱히 정해져있지 않음.

 

역할

1. 특정 범위 내에 몬스터를 생성한 다음에 몬스터를 죽일 때마다 죽은 몬스터의 갯수를 체크, 이를  어느정도 유지 시킴

2. 랜덤하게 유지하기도 함.

이는 원래 서버 쪽에서 담당함.

 

 

 

특정 시간이 흐르면 몬스터 생성

ex) 5초 기다리기

Coroutine 코루틴으로 만들기

 

  void Update()
    {
        //현재 monstercount가 keepmonstercount와 일치하는지 아닌지 체크
        //더 작으면
        while(_monsterCount < _keepMonsterCount)
        {
            //만들어줌
            StartCoroutine("ReserveSpawn");
        }

    }

    //Coroutine 사용, 특정 스폰타임이 경과하면 몬스터 생성을 위하여
    IEnumerator ReserveSpawn()
    {
        yield return new WaitForSeconds(Random.Range(0, _spawnTime)); 
        GameObject obj = Managers.Game.Spawn(Define.WorldObject.Monster, "MadCap");

        yield return null;
    }

WaitForSeconds(); 특정 시간이 흐른 후 작동

Random.Range(min, max);

yield return null; // IEnumerator 리턴 값 없으므로 임시로 null return 하도록 함

 

 

728x90
반응형

'Unity' 카테고리의 다른 글

점프 애니메이션  (0) 2022.03.05
유니티 충돌 관련 기억해야 할 부분  (0) 2022.03.04
TryGetValue 함수_Unity  (0) 2022.02.20
GameObject Destroy  (0) 2021.12.23
애니메이션 특정 Event 추가_실수  (0) 2021.12.15

댓글